2013-02-15 74 views
24

在使用postgres實現多租戶解決方案時,我需要一個關於最大模式可以駐留在一個postgres數據庫中的答案。可以在postgres中創建多少個模式

+0

我認爲這個問題是一個可能的設計缺陷的跡象。當然你可以使用一個數據庫,並在列中指明客戶端。 – Bohemian 2013-02-15 13:16:43

+8

正如在單個模式設置中向客戶列添加表格一樣,存在使用多個模式的設計優缺點。在我看來,它並不是那麼黑白。 – Kuberchaun 2013-02-15 14:51:36

+3

我當然有這個選擇,但是我採用了這個選項,Postgres對於多個模式具有非常強大的功能,我們絕對應該去做,而不是在每次查詢之前增加編碼和搜索特定客戶端的工作量。 – 2013-04-15 08:20:00

回答

29

我們測試了數千個模式 - 數千個表沒有問題。有一些已知問題

  • 問題GUI管理 - 慢啓動,由於讀取啓動一個完整的對象樹,
  • 問題pg_dump - 將備份的慢啓動 - 需要大量的時間用於鎖定的對象。
+0

感謝您分享您的體驗!當你說「千」時,近似值是多少? – 2015-10-29 20:01:35

+4

@MarcioSimao - 大約一萬。現在兩年後,真正的限制在於管理和備份的基本工具。 pg_dump,pg_restore在一個事務中的處理對象數大於20000個對象時會出現問題。另一個問題是膨脹緩存太大的架構。 Postgres在每個數據庫的本地緩存中保存大量數據。當你在大型模式中重用連接時,這個緩存可能太大,有時會很慢 - 但它取決於pooler sw。可用的SW如pgbouncer或pgpool不是太聰明:( – 2015-10-30 06:46:44

+1

@PavelStehule你是如何解決pg_dump問題的?任何提示?我面臨同樣的問題 – 2017-01-20 08:31:23

相關問題