2015-02-11 49 views
3

我正在構建一個允許用戶發佈內容的應用程序。這個內容然後可以被評論。Couchbase - 大型文件或許多較小的文件?

假定以下:

  1. 用於內容文檔是200KB和3MB之間上的文本內容取決於 內部。
  2. 每個評論的大小在10KB到100KB之間。
  3. 可能有1條評論,或者1000條。沒有限制。

我的問題是,在存儲內容時,應該將單個註釋存儲在同一個文檔中,還是應該分解?

回答

5

我肯定保持文章的內容和評論分開,假設將存在的員額將預覽/不帶註釋使用的應用程序的部分。

對於評論本身(假設它們是分開的),我會說很多小的評論通常會更好,如果僅僅是因爲考慮到存在100或1000評論的帖子,您不會去想立即使用它們,所以這是有道理的,因爲他們被要求只得到文件(要顯示的),而不是裝的意見MB上只使用< 100KB的什麼在當時已經得到了。

你可能不需要註釋被單獨保存,但提供你的鑰匙是合乎邏輯的,並按照可預測的方案,我看不出有什麼理由不單獨保存。但是,如果您希望進行一些分組,那麼我可能會避免將每個文檔的更多評論分組爲比您的使用情況更爲典型。

如果您在使用視圖或許將單個文檔中的更多註釋分組可能會有所幫助,但即使如此,這也取決於您的用例。

會有來自Couchbase沒有軟件的瓶頸單獨存儲大量的文件,唯一的限制是硬件限制,那將是非常相似的;無論你是否有很多小文件或較少的大文件。

+1

謝謝,這裏有很好的資訊。 – NotHereAnymore 2015-02-11 13:42:38

+1

我應該澄清一下,「提供你的鑰匙是合乎邏輯的,並遵循可預測的方案」,我開始提出一個觀點,但沒有去任何地方。我的意思是,只要它們很容易引用(例如,post key是「abc」使註釋關鍵字「abc_nnn」或類似),以便應用程序通常可以獲取它們而不需要視圖(例如,加載「abc_001 「更改爲」abc_010「,並在需要更多時重複)。 此外,您可能要考慮把父文件孩子的意見在一個文檔中的分組頂級的意見之前(或至少我會)。 – mrkwse 2015-02-11 15:27:31

3

我會去與每個答案的文檔作爲Couchbase是在組織什麼保留在內存中並沒有什麼輝煌。通常情況下,應用程序在超過25個時不會顯示所有評論(我認爲這是大多數應用程序使用的數字,例如以大於25的數字顯示它們)。因此,如果最新的25條評論被保存在內存中,而較舊的評論隨後會自動寫入磁盤,則您在使用內存的方式(對Couchbase始終是關鍵)和訪問時間之間保持理想的水平。我會說完美的平衡,我在我的應用程序中做出了類似的決定,並且完美運行。

相關問題