2011-02-04 17 views
12

我正在設計一個基於CouchDB的系統。它將有少量不同的組件 - 用戶列表,主數據存儲區,日誌記錄等。我想要感受的是,CouchDB數據庫的範圍應該是什麼?我應該爲每個組件分別使用不同的數據庫,還是隻將所有內容都集中到一個,併爲每個文檔使用「類型」屬性?我知道單個數據庫可以非常高興地變得非常大,但是將所有內容都保存在一個數據庫中,而不是將數據庫拆分出來,從而影響了視圖的性能?從本質上講,涉及哪些交易?何時使用單獨的CouchDB數據庫?

乾杯。

回答

13

好問題,丹。

我認爲這基本上是一個優化問題。一個好主意不是太早優化(分成多個數據庫)。 (一個例外可能是日誌,它可以快速控制所有其他數據,需要經常壓縮,我可能會立即將日誌分開。)

查看性能不會受到影響。爲了交換預定義的查詢(視圖定義),CouchDB始終保證快速查看結果。

是否分割成多個數據庫通常取決於身份驗證和權限問題。如果您使用普通的Web服務器前端,那麼這不是一個問題。

至於所有的觀點,他們都很好如果你經常查詢。查詢可以使視圖保持最新狀態,同時響應時間更快。查詢中的延遲導致爲下一個處理建立起來。在生產中,這不是什麼大問題。

+1

謝謝,這就是我以後的答案!我的直覺是反對不成熟的優化,並且我已經開始將它全部保存在一個數據庫中,但分離日誌的建議聽起來不錯。 – stompydan 2011-02-10 09:24:57