我的應用程序數據包含一個巨大的樹,隨着用戶與系統交互而增長。圖形數據庫比key-val商店更適合存儲大樹嗎?可擴展性的損失(對於圖形dbs通常更難分割)由其他功能補償?圖形數據庫是否比keyval存儲更適合存儲樹?
2
A
回答
4
這要看情況。
如果你使用一個關鍵值存儲,我會想象你會爲孩子做很多查找,這可能是一個很長的列表,所以你的關鍵應該是父節點,並且你的價值是孩子,你可能會有很多動作和查詢桌子。這通常是您在關係數據庫中存在的問題,即這些類型的表連接。
圖形數據庫是偉大的,因爲你不做連接,但遍歷,所以你會開始在根,並指定深度,或結束條件,然後你可以讓圖遍歷使用傳出關係,讓你你的最終結果。
我同意你的看法分片不是圖形數據庫一個不錯的選擇,至少不能跨店關係遍歷的感覺。但我相信,對數據進行適當的建模,這應該不成問題,至少在圖數據庫很聰明的情況下不會有問題。
的Neo4j有密集的節點,其中有許多(500K +)關係的節點可能會導致慢下來遍歷一個問題,但你可以使用索引解決此問題得到。除此之外,對於大型數據來說它非常棒,因爲它在磁盤上的存儲效率很高,並且遍歷速度非常快。
1
定義 「巨大的」。如果你能適應Neo4J的限制/限制或者有一個自然的和合乎邏輯的分片模型,Neo4J將是一個更簡潔/更簡單/更強大的方法,並且需要更少的代碼。正如尼古拉斯所說,如果你的數據庫會有很多「熱點」節點(很多關係),你可能會遇到一些挑戰,但是通常你可以使用應用程序設計方法來解決這個限制。
相關問題
- 1. Phonegap存儲,數據庫是否存在
- 2. 圖形數據庫和RDF三重存儲:使用python存儲圖形數據
- 3. 這是更適合鍵值存儲還是樹?
- 4. YAML是否適合在關鍵值存儲中存儲記錄?
- 5. Cassandra是否適合存儲文件?
- 6. Hashtable是否適合存儲資產?
- 7. 列存儲數據庫是否與SSD存儲時代相關?
- 8. SharedPreferences是否存儲在數據庫中?
- 9. 是否存在從數據存儲庫/數據庫中持久存儲圖像的庫
- 10. Cassandra是否適合用作主數據存儲?
- 11. neo4j是否適合存儲一般的nosql數據?
- 12. 圖形數據庫如何將數據存儲到持久存儲?
- 13. 比較源碼樹與git存儲庫?
- 14. 哪一個更適合在視圖狀態下存儲數據?
- 15. NoSQL適合存儲用戶數據嗎?
- 16. 樹的ExtJS數據存儲
- 17. 存儲樹數據結構
- 18. 存儲樹和圖的數據?
- 19. SQL數據庫是否適合存儲許多玩家及其遊戲?
- 20. 文檔/ NoSQL數據庫是否適合存儲資產負債表?
- 21. 這個數據庫設計是否適合存儲調查結果?
- 22. 數據庫存儲
- 23. 百分比值存儲在數據庫
- 24. 如何存儲和查詢樹形結構的數據庫
- 25. Android是否永久存儲SQLite數據,還是暫時存儲?
- 26. 如何存儲樹聚合
- 27. PostgreSQL是否適合存儲低流量項目的圖像?
- 28. 什麼數據庫更適合存儲和搜索關鍵字/值對數據?
- 29. Spring數據存儲庫聚合
- 30. 是否可以通過數據存儲API將圖像存儲到Dropbox數據存儲?
我很驚訝,沒有人提到文件的數據庫,如蒙戈DB。或者,也許這只是一種鍵值存儲?根據我的經驗,文檔數據庫不是存儲樹的答案,因爲如果不將整個文檔樹讀入內存,就無法訪問內部節點。我希望有一天有人想出一個NoSQL樹數據庫。 –