我一直聽到很多關於面向文檔的數據存儲,比如CouchDB。我瞭解像Cassandra這樣的商店的BigTable的用途。在閱讀this question之後,我想知道使用文檔存儲的條件是什麼?文檔商店的最佳用途是什麼?
回答
諸如Bigtable和Cassandra這樣的列族商店具有非常有限的查詢功能。應用程序負責維護索引以查詢更復雜的數據模型。
文檔數據庫允許您查詢內容,而不僅僅是密鑰。它還將爲您管理索引,從而降低應用程序的複雜性。
Domain-driven design傳播聚合和價值對象的使用。 As Ayende points out,(複雜)聚合是非常自然的候選,可以作爲單個文檔存儲,而不是通過多個表或列家族進行歸一化。這將減少持久層的複雜性。由於所有數據都包含在單個文檔中,因此相關數據分散在多個節點的可能性也較小。
如果您的應用程序需要存儲多態對象,文檔數據庫也是一個不錯的選擇。當然,這也可以存儲在卡桑德拉,但你不會有太多的查詢功能。至少不是開箱即用的。
將文檔數據庫視爲豪華跑車。它不需要專業的驅動程序(閱讀:複雜的應用程序)讓您從A到B,它具有空調和舒適座椅等功能,它將在可接受的時間內覆蓋高可擴展性軌道。但是,如果您想在高可擴展性軌道上設置一個單圈記錄,您需要將需要一個專業的驅動程序和高度優化的汽車(如卡桑德拉),它缺乏空調等功能。
的CouchDB的另一個特徵是,可以創建這些聚合,而不是作爲文件手動保存,但作爲視圖(其從所存儲的數據自動地導出和更新的。)
這就如同電動車窗,加熱座椅,或踢腳架。
當然淘氣自然 – JasonSmith 2010-07-31 18:33:33
- 1. 什麼是從Vuex商店內實現常見任務的最佳途徑
- 2. BusyIndicator的最佳用途是什麼?
- 3. Ext JS - 克隆進出商店的最佳方式是什麼?
- 4. 什麼是多商店的最佳解決方案?
- 5. AMD + Backbone + JSDoc3文檔的最佳途徑
- 6. 構建Windows應用商店應用的最佳做法是什麼?
- 7. 專欄商店vs文檔商店
- 8. 什麼是獲得pst文件大小的最佳途徑
- 9. 什麼是解析.c文件的最佳途徑?
- 10. 什麼是VB的最佳檔案庫?
- 11. 管理「獨立」應用商店版本的最佳方式是什麼?
- 12. mongoengine-什麼是referencefield商店
- 13. 什麼是商店comonad?
- 14. 在Jackrabbit Repository中存檔文檔的最佳方式是什麼?
- 15. Django Admin應用程序的最佳用途是什麼?
- 16. Windows 10商店應用程序中徽章徽標的用途是什麼?
- 17. PhoneGap的應用應該是什麼最佳途徑
- 18. Go Imaginary Literals的最佳用途是什麼?
- 19. 跟蹤商店中產品的剩餘庫存的最佳設計是什麼
- 20. iPhone上的商店編程變量的最佳實踐是什麼?
- 21. MongoDB中的商店和產品如數據庫的最佳結構是什麼?
- 22. 複製Play商店中的「操作欄」的最佳方法是什麼?
- 23. 處理Google Play商店安全警示的最佳做法是什麼?
- 24. 什麼是限制商店或網站模塊功能的最佳方式
- 25. 在Rails中實現「查找商店」功能的最佳方式是什麼?
- 26. Web應用程序開發 - 什麼是文檔最佳實踐
- 27. 什麼是與laravel API的WordPress的網站的最佳途徑
- 28. 什麼是TIBRV API的.NET實現的最佳文檔集合?
- 29. 什麼是bigcartel商店的「checkout complete」URL?
- 30. 什麼是正確的商店?
嘿,多麼好的描述!我唯一要補充的是CouchDB的目標是成爲數據庫的本田雅閣,而不是法拉利。不過我認爲它們是不同的隱喻,只是偶然相關。 – JasonSmith 2010-07-31 17:19:41