Есть ли ограничение на количество таблиц, которые может иметь база данных PostgreSQL? - PullRequest
8 голосов
/ 15 сентября 2010

Я создал базу данных в 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 наборе таблиц, используя идентификатор для различения коллекций данных вместо разделения их с помощью разных таблиц.

Я хочу знать, несколько вещей

  1. Ограничивает ли PostgreSQL количество таблиц в базе данных?
  2. Как влияет на производительность большое количество таблиц в 1 базе данных, если таковые имеются?
  3. Как влияет на производительность сохранение коллекций данных в разных наборах таблиц по сравнению с сохранением их всех в одном наборе, например Я предполагаю, что нужно будет написать больше запросов, если я хочу запросить несколько коллекций данных одновременно, когда данные распределены по таблицам по сравнению только с одним набором таблиц.

Ответы [ 3 ]

14 голосов
/ 15 сентября 2010

PostgreSQL не имеет много ограничений, ваше оборудование намного более ограничено, и именно здесь вы сталкиваетесь с большинством проблем.http://www.postgresql.org/about/

Вы можете иметь 2 ^ 32 таблицы в одной базе данных, чуть более 4 млрд.

2 голосов
/ 15 сентября 2010
  1. PostgreSQL не накладывает прямого ограничения на это, ваша ОС делает это (это зависит от максимального размера каталога)
  2. Это также может зависеть от вашей ОС.Некоторые файловые системы работают медленнее с большими каталогами.
  3. PostgreSQL не сможет оптимизировать запросы, если они находятся в разных таблицах.Поэтому использование меньшего количества таблиц (или одной таблицы) должно быть более эффективным
0 голосов
/ 09 апреля 2011

Если бы ваши данные не были связаны, я думаю, что ваши таблицы могли бы быть в другой схеме, и тогда вы использовали бы, например, SET search_path TO schema1, public, таким образом, вам не пришлось бы динамически генерировать имена таблиц в ваших запросах.Я планирую опробовать эту структуру в большой базе данных, в которой хранятся журналы и другая информация об отслеживании.

Вы также можете изменить tablespace, если ваша ОС имеет ограничение или страдает от большого размера каталога.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...