[英]Disadvantages of CouchDB
這意味着文檔非常大(大數據、網絡帶寬、速度),並且具有描述性的鍵名實際上是有害的,因為它們加起來等於文檔大小。
沒有內置的全文搜索
雖然有辦法: couchdb-lucene , elasticsearch
再加上一些:
這意味着在所有文檔中強制一個字段的唯一性是不安全的,例如,強制用戶名是唯一的。 CouchDB 無法支持事務的典型概念的另一個后果是,諸如增加/減少值並將其保存回來的事情也是危險的。 沒有多少實例是我們想要簡單地增加/減少一些值,我們不能單獨存儲單個文檔並將它們與視圖聚合。
如果數據采用第三范式很有意義,而我們嘗試在 CouchDB 中遵循這種形式,我們將遇到很多麻煩。 解決這個問題的一種可能方法是使用視圖排序規則,但我們可能會不斷地與系統作斗爭。 如果數據可以重新格式化為更加非規范化,那么 CouchDB 將正常工作。
問題在於 CouchDB 中大型數據集的臨時視圖非常慢。 使用 CouchDB 和永久視圖可以很好地工作。 然而,在大多數情況下,某種類型的面向列的數據庫對於數據倉庫工作來說是一個更好的工具。
但是 CouchDB 太棒了!
但是不要讓它讓您失望:用 Erlang(CouchDB、Riak)編寫的 NoSQL DB 是最好的,因為 Erlang 是為分布式系統設計的。 有沙發的樂趣!
還有兩件事讓我在使用 CouchDB 時哭了(雖然它很棒):
作為一名老 Lotus Domino 專家,我希望將 CouchDB 作為我正在啟動的新項目的替代方案,但發現 Couch 與 Domino 對讀者的限制非常弱。 在我的應用程序中,安全性是一個重要的考慮因素,Couch 需要一個中間件層來處理閱讀器的安全性。
如果您的數據庫中所有定義的用戶都可以看到所有文檔,那么 Couch 看起來是一個有趣的平台。
如果需要限制讀取,那么您需要尋找中間件解決方案或考慮其他替代方案。
CouchDB 開發人員注意事項:改進平台安全選項。 我意識到它們在使用時會降低性能,但請注意並提供該選項。
現在回到確定要使用的數據庫......
這與 CouchDB 本身無關,但是作為一個相對較新的人,大多數系統管理員仍然不熟悉它,並且不會允許它靠近“他們的”數據中心。 如果您處於部署到無法控制自己的環境的情況,這可能是一場戰斗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.