Database

PostgreSQL 和 Mongodb 在生產中

  • March 28, 2015

我們有一個產品使用 Postgres 處理 RDBMSish 數據(賬戶、賬單等),使用 MongoDB 處理每個賬戶數據(顯然不能在 Postgres 上維護)。

在本地開發中,我們將我們的盒子設置為將psql實例和mongod實例放在同一個盒子上(伴隨著應用程序伺服器和 Web 伺服器),但是當我們進入 beta 階段時,我想知道什麼是最好的設置生產環境,或者更容易設置和維護的環境。

將兩個數據庫保存在一起的實例(雲伺服器)還是我們應該拆分實例並且每個實例都應該有自己的機器?(顯然第二種選擇總是更好)

有沒有人經歷過這些設置並有一些見解?我們還研究了完全遷移到 MongoDB 的可能性,但這種可能性還很遙遠。

在同一系統上託管兩個類似數據庫的程序通常是個壞主意。具體來說,MongoDB 被設計為它所在的任何機器的唯一租戶。Postgress 更友好一些,但作為唯一的租戶也會更快樂。

但是有一些警告:

  • 如果系統有足夠的記憶體供兩個數據庫完全記憶體它們的數據庫在記憶體中,那麼只要有足夠的 I/O,它們就可以愉快地共存。
  • 如果數據庫非常不對稱(psql 中的帳戶元數據數據庫,mongo 中的怪物大小的帳戶數據庫),您可以共享,只要您有足夠的 RAM 來實現快速的 Mongo 性能和 psql 所需的位。
  • 如果兩個數據庫都足夠大,以至於它們在單獨執行時無法放入 RAM,那麼強烈建議使用兩台伺服器。

如果您確實決定將來整合到 Mongo,您可以愉快地減少到單個伺服器用於 DB。

引用自:https://serverfault.com/questions/474931