Postgresql
單連接 vs 多連接
我正在重新設計我客戶的網站,以便為他們的網站添加大約 16 個迷你網站。這是一個使用 PostgreSQL 的網站。我的問題是:
性能方面,更好的數據庫設計是什麼:
- 1(一個)數據庫,大約有 190 個表,或
- 17 個數據庫,一個有 30 個表,其餘的每個大約有 10 個表。
它適用於中低流量網站,但每年有 4 或 5 次流量會很高。
這是一個 Centos 6 VPS,具有 3 GB 的 RAM。其他軟體是 Apache 和 PHP。
在 postgreSQL 中,數據庫是一個邏輯概念,PostgreSQL 伺服器管理一個包含所有數據庫的數據庫集群。數據庫的數量不會影響伺服器的性能。
我建議你從邏輯結構的角度來劃分數據庫。如果您的系統可以完全劃分為每個迷你站點,您可以創建與站點對應的數據庫。(當一個站點的訪問量增加時,您可以將該站點劃分並重新定位到其他伺服器。)
如果你對你的 postgresql 進行 17 次連接,你將有 17 個執行緒用於你係統的雙方(數據庫和介面)的一個使用者會話,如果你正在使用 java 開發,這尤其如此。
但另一方面,如果有太多使用者連接到系統,則可能您的伺服器上的 postgresql 執行緒過多,例如 10 個使用者有 170 個執行緒,這會破壞硬體!請記住,執行緒使用一些重複的程式碼,這會淹沒你的記憶。
我認為第一個設計更好,但由於組織創建 17 個模式而不是您想要的 17 個數據庫或 17 個連接,這將使您的工作更好地理解。
為什麼你想做這樣的事情?如果您需要一個以上的處理器來執行某種操作,您也可以使用相同的數據庫連接兩次。