Есть ли ограничение на количество таблиц в базе данных PostgreSQL может быть?
Я создал базу данных в PostgreSQL, назовем его база данных testdb.
У меня есть общий набор таблиц внутри этой базы данных,xxx_table_one, xxx_table_two и xxx_table_three.
теперь у меня есть код Python, где я хочу динамически создавать и удалять "наборы" этих 3 таблиц в мою базу данных с уникальным идентификатором в имени таблицы, отличающим разные "наборы" друг от друга, например
установить 1
база данных testdb.aaa_table_one
база данных testdb.aaa_table_two
база данных testdb.aaa_table_three
установить 2
база данных testdb.bbb_table_one
база данных testdb.bbb_table_two
база данных testdb.bbb_table_three
причина, по которой я хочу сделать это таким образом, состоит в том, чтобы держать несколько больших коллекций данных связанных данных отдельно друг от друга. Мне нужно регулярно перезаписывать отдельные коллекции данных, и это легко, если мы можем просто отказаться таблица сбора данных и воссоздать полный новый набор таблиц. Кроме того, я должен упомянуть, что различные коллекции данных вписываются в одни и те же схемы, поэтому я мог бы сохранить все коллекции данных в 1 наборе таблиц, используя идентификатор для различения коллекций данных вместо их разделения с помощью разных таблиц.
Я хочу знать, несколько вещей
- ограничивает ли PostgreSQL количество таблиц в базе данных?
- каково влияние на производительность, если таковая имеется, наличия большого количества таблиц в базе данных 1?
- каково влияние на производительность сохранения коллекций данных в разных наборах таблиц по сравнению с сохранением их всех в одном наборе, например, я думаю, нужно будет написать больше запросов, если я хочу запросить несколько коллекций данных сразу, когда данные распространяются по таблицам по сравнению с только 1 набором таблиц.
3 ответов
PostgreSQL не имеет много ограничений, ваше оборудование намного более ограничено, вот где вы сталкиваетесь с большинством проблем. http://www.postgresql.org/about/
вы можете иметь 2^32 таблиц в одной базе данных, чуть более 4 миллиардов.
- PostgreSQL не накладывает прямого ограничения на это, ваша ОС (это зависит от максимального размера каталога)
- Это также может зависеть от вашей ОС. Некоторые файловые системы работают медленнее с большими каталогами.
- PostgreSQL не сможет оптимизировать запросы, если они находятся в разных таблицах. Поэтому использование меньшего количества таблиц (или одной таблицы) должно быть более эффективным
Если ваши данные не были связаны, я думаю, что ваши таблицы могут быть в другой схеме, и тогда вы будете использовать SET search_path TO schema1, public
например, таким образом вам не придется динамически генерировать имена таблиц в запросах. Я планирую попробовать эту структуру на большой базе данных, которая хранит журналы и другую информацию отслеживания.
вы также можете изменить свой tablespace
Если ваша ОС имеет ограничение или страдает от большого размера каталог.