Медленное создание схемы/таблицы в postgres

У меня есть база данных postgres с ~ 65 000 схем (по одной на каждого клиента), каждая из которых содержит ~ 5–20 таблиц. Я заметил, что создание новых схем и таблиц, кажется, замедляется. Я предполагаю, что может быть системная таблица, которая не проиндексирована должным образом для поддержки этого сценария, но вызов «EXPLAIN CREATE SCHEMA» вызывает синтаксическую ошибку, поэтому я не знаю, как это отладить. Любые идеи?

РЕДАКТИРОВАТЬ: Это база данных Amazon RDS, экземпляр m4.2xlarge с высокой доступностью, 400 ГБ хранилища SSD.


person josh    schedule 12.01.2017    source источник


Ответы (1)


Если вы не предприняли специальных шагов, вы храните от 325 000 до 1,3 миллиона файлов в одном каталоге. Не все файловые системы корректно справляются с таким количеством файлов в одном каталоге.

Особые шаги включают создание табличных пространств и перемещение таблиц или индексов с помощью alter table ... set tablespace ....

person Mike Sherrill 'Cat Recall'    schedule 12.01.2017
comment
Как насчет создания более одной базы данных для хранения такого количества схем? - person Laurenz Albe; 13.01.2017
comment
@LaurenzAlbe: по умолчанию новые файлы базы данных будут находиться в том же каталоге. Я думаю, вам нужны табличные пространства. - person Mike Sherrill 'Cat Recall'; 13.01.2017
comment
Если проблема действительно в каталоге. Возможно, вы могли бы расширить ответ, чтобы порекомендовать несколько баз данных в нескольких табличных пространствах. - person Laurenz Albe; 13.01.2017
comment
@LaurenzAlbe: я не рекомендовал несколько баз данных. OP имеет существующую многопользовательскую систему, которая включает 65 000 схем и таблиц в одной базе данных. Переход на несколько баз данных вероятно потребует переписывания значительного количества кода приложения. Переход на несколько табличных пространств не работает. - person Mike Sherrill 'Cat Recall'; 13.01.2017
comment
Спасибо за ответ. Проведу некоторое расследование, чтобы узнать, происходит ли это (сейчас я на RDS, так что может быть сложно возиться с файловой системой, посмотрим...) - person josh; 13.01.2017
comment
@josh: RDS меняет дело. Вы должны отредактировать свой вопрос и включить информацию о RDS. (Тип хранилища и показатели экземпляра БД) - person Mike Sherrill 'Cat Recall'; 13.01.2017
comment
@MikeSherrill'CatRecall' спасибо, редактирую вопрос, чтобы включить эту информацию - person josh; 14.01.2017