2010-09-15 127 views
8

我在PostgreSQL中創建了一個數據庫,我們稱之爲testdbPostgreSQL數據庫可以擁有的表的數量是否有限制?

我有一個通用的一組表這個數據庫裏面,xxx_table_onexxx_table_twoxxx_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

那裏不久我想這樣做是爲了保持相關數據的多個LARGE數據收集彼此分開。我需要定期覆蓋單個數據集合,如果我們可以刪除數據集合表並重新創建一組全新的表,那很容易。另外,我不得不提及,不同的數據集合適合相同的模式,所以我可以使用標識符將所有數據集合保存在一組表中,以便區分數據集合,而不是使用不同的表來分隔它們。

我想知道,幾件事情

  1. PostgreSQL可以限制每個數據庫表的數量?
  2. 對性能有什麼影響,如果有的話,在1個數據庫中有大量的表?
  3. 與將它們全部保存在同一組中的情況相比,對保存不同組表中的數據集的性能有何影響,例如,如果我希望一次查詢多個數據集合時,我認爲需要編寫更多的查詢,當數據分散在表中時,與僅有一組表相比。
+1

定義「大」。創建和刪除表通常是錯誤的方法。 – mpen 2010-09-15 07:54:12

+5

做。不。做。這個。這是一個可怕的設計破解。許多人嘗試它 - 每個嘗試它的人都感到遺憾。使用鍵值作爲表格內的列;不要像這樣創建表格。 – 2010-09-15 10:11:21

+0

大可能是約1,000.000 - 10,000,000條記錄。不是那麼大,但是每個數據收集是一個預處理的數據收集,每月更新一次或兩次。 – sizeight 2010-09-15 10:20:36

回答

14

PostgreSQL沒有很多限制,您的硬件更有限,這是您遇到大多數問題的地方。 http://www.postgresql.org/about/

您可以在一個數據庫中擁有2^32個表,只有40多億個表。

+0

本回復中提到的結論是PostgreSQL社區貢獻者研究的一個榮譽,參見[PGCon 2013](http://www.pgcon.org/2013/schedule/attachments/283_Billion_Tables_Project-PgCon2013.pdf) – pazfernando 2014-09-17 00:44:59

2
  1. PostgreSQL沒有這個強加的直接限制,您的操作系統做(這取決於最大目錄大小)
  2. 這可能取決於你的操作系統上也是如此。有些文件系統會因大型目錄而變慢。
  3. 如果PostgreSQL跨越不同的表格,將無法優化查詢。因此,使用較少的表格(或單個表格)應該更加高效
0

如果你的數據不相關,我認爲你的表可能在不同的模式,然後你會使用SET search_path TO schema1, public爲例,這樣你就不必在查詢中動態生成表名。我打算在一個存儲日誌和其他跟蹤信息的大型數據庫上嘗試這種結構。

如果您的操作系統有限制或受到大型目錄大小的限制,您也可以更改您的tablespace

相關問題