2015-05-14 72 views
0

我知道返回的JSON不是相同的存儲(例如,屬性名稱可能不會以相同的順序返回)。Couchbase是否將JSON作爲純文本存儲在磁盤中?

但是,Couchbase如何將JSON對象存儲在磁盤中? 它是否具有架構的優點或將其作爲簡單的純文本寫入?

在巨大的JSON的情況下,會有壓縮它,並存儲爲二進制的任何缺點? (除了丟失查詢容量等等)。

+1

下面是[Couchbase的文件格式]上的維基頁面(https://github.com/couchbaselabs/couchstore/wiki/Format)。它部分回答你的問題。 –

回答

2

除了Llama先生鏈接到的維基頁面,這很好,我不想重複聽到,這裏是你的問題的其他答案。

如果您在應用程序中預壓縮文檔,它們當然會更快地通過網絡移動,並在壓縮時更快地通過隊列。缺點是你指出的那個,你失去了任何查詢能力。沒有索引,沒有視圖,沒有N1QL。它只是一個二進制對象。如果你的應用程序正在使用一個很好的關鍵模式,並將按照每個對象進行查詢,並且從不查詢,那就去做吧! Couchbase會做得很好。

所有的說法,Couchbase確實對磁盤上的文件進行了快速壓縮。這顯然可以節省磁盤空間,但是不能通過電線或飛行。

請注意,Couchbase正在使用名爲ForestDB的新持久性引擎來替代當前的Couchstore。 https://github.com/couchbase/forestdb

在另一個說明中,如果您有巨大的JSON,可能有必要對它們進行標準化處理。很明顯,您的應用必須具有合理性,但如果可以的話,那麼您只需要提取所需信息的各個部分,在需要時即可優化對Couchbase託管緩存的使用。例如,在用戶配置文件存儲中,我可能一直需要用戶的身份驗證信息,並且這些信息位於其自己的小文檔中,而且我始終需要它在託管緩存中,但用戶的安全問題很少需要,如果它們不在託管緩存中,Couchbase必須從磁盤獲取它們,這很重要。但是,如果他們都在一個大的用戶配置文件中,我將不得不提取整個對象,包括可能有很多我不需要的數據。使用適當的標準化鍵模式,您可以獲得所需的數據或使用批量獲取並獲取所有文檔。

相關問題