Gibt es eine Begrenzung für die Anzahl der Tabellen, die eine PostgreSQL-Datenbank haben kann?

8

Ich habe in PostgreSQL eine Datenbank erstellt, nennen wir sie testdb .

Ich habe einen generischen Satz von Tabellen in dieser Datenbank, xxx_table_one , xxx_table_two und xxx_table_three .

Nun habe ich Python-Code, wo ich "Sätze" dieser drei Tabellen dynamisch zu meiner Datenbank mit einem eindeutigen Bezeichner in dem Tabellennamen erstellen und entfernen möchte, der verschiedene "Sätze" voneinander unterscheidet, z.

Set 1
testdb.aaa_table_one
testdb.aaa_table_two
testdb.aaa_table_three

Set 2
testdb.bbb_table_one
testdb.bbb_table_two
testdb.bbb_table_three

Der Grund, warum ich das so machen möchte, ist, mehrere große Datensammlungen zusammenhängender Daten voneinander zu trennen. Ich muss regelmäßig einzelne Datensammlungen überschreiben, und es ist einfach, wenn wir einfach die Datensammeltabelle löschen und einen kompletten neuen Satz von Tabellen neu erstellen können. Außerdem muss ich erwähnen, dass die verschiedenen Datensammlungen in die gleichen Schemas passen, sodass ich alle Datensammlungen in einem Satz von Tabellen mit einem Bezeichner speichern konnte, um Datensammlungen zu unterscheiden, anstatt sie durch verschiedene Tabellen zu trennen.

Ich möchte wissen, ein paar Dinge

  1. Beschränkt PostgreSQL die Anzahl der Tabellen pro Datenbank?
  2. Wie wirkt sich das auf die Leistung aus, wenn eine große Anzahl von Tabellen in einer Datenbank vorhanden ist?
  3. Welchen Effekt hat das Speichern der Datensammlungen in verschiedenen Tabellensätzen, verglichen mit dem Speichern aller Daten in demselben Satz, z. Ich denke, dass ich mehr Abfragen schreiben müsste, wenn ich mehrere Datensammlungen gleichzeitig abfragen möchte, wenn die Daten über Tabellen verteilt sind, verglichen mit nur einem Satz von Tabellen.
sizeight 15.09.2010, 07:15
quelle

3 Antworten

14

PostgreSQL hat nicht viele Grenzen, Ihre Hardware ist viel begrenzter, da stoßen Sie auf die meisten Probleme. Ссылка

Sie können 2 ^ 32 Tabellen in einer einzigen Datenbank haben, etwas über 4 Milliarden.

    
Frank Heikens 15.09.2010, 07:52
quelle
2
  1. PostgreSQL hat keine direkte Begrenzung dafür, Ihr Betriebssystem tut dies (es hängt von der maximalen Verzeichnisgröße ab)
  2. Dies hängt auch von Ihrem Betriebssystem ab. Einige Dateisysteme werden bei großen Verzeichnissen langsamer.
  3. PostgreSQL kann Abfragen nicht optimieren, wenn sie sich über verschiedene Tabellen erstrecken. Daher sollte weniger Tabellen (oder eine einzelne Tabelle) effizienter sein
Ivo van der Wijk 15.09.2010 07:47
quelle
0

Wenn Ihre Daten nicht verwandt sind, denke ich, dass Ihre Tabellen in einem anderen Schema sein könnten, und dann würden Sie beispielsweise SET search_path TO schema1, public verwenden, so dass Sie Tabellennamen in Ihren Abfragen nicht dynamisch generieren müssten. Ich plane, diese Struktur auf einer großen Datenbank zu versuchen, die Protokolle und andere Spurhaltungsinformationen speichert.

Sie können Ihre tablespace auch ändern, wenn Ihr Betriebssystem ein Limit hat oder unter einer großen Verzeichnisgröße leidet.

    
golgote 09.04.2011 08:21
quelle