關於MongoDB你需要知道的幾件事

2021-09-02 16:40:18 字數 1867 閱讀 8915

henrique lobo weissmann是一位來自於巴西的軟體開發者,他是itexto公司的聯合創始人,這是一家諮詢公司。近日,henrique在部落格上撰文談到了關於mongodb的一些內容,其中有些觀點值得我們,特別是正在和打算使用mongodb的開發者關注。

到目前為止,mongodb在巴西是最為流行的nosql資料庫(至少根據關於mongodb的部落格數量以及文章所判斷)。mongodb是個非常棒的解決方案,不過困擾我們的是很少有人了解過關於它的一些限制。這樣的事情正在不斷上演:人們看到mongodb的限制,心裡卻認為這些是它的bug。

本文列舉了頗讓作者困惑的一些mongodb限制,如果你也打算使用mongodb,那麼至少要提前了解這些限制,以免遇到的時候措手不及。

消耗磁碟空間

這是我的第乙個困惑:mongodb會消耗太多的磁碟空間了。當然了,這與它的編碼方式有關,因為mongodb會通過預分配大檔案空間來避免磁碟碎片問題。它的工作方式是這樣的:在建立資料庫時,系統會建立乙個名為[db name].0的檔案,當該檔案有一半以上被使用時,系統會再次建立乙個名為[db name].1的檔案,該檔案的大小是方才的兩倍。這個情況會持續不斷的發生,因此256、512、1024、2048大小的檔案會被寫到磁碟上。最後,再次建立檔案時大小都將為2048mb。如果儲存空間是專案的乙個限制,那麼你必須要考慮這個情況。該問題有個商業解決方案,名字叫做

tokumx,使用後儲存消耗將會減少90%。此外,從長遠來看,repairdatabase與compact命令也會在一定程度上幫到你。

通過複製集實現的資料複製效果非常棒,不過也有限制

mongodb中資料複製的複製集策略非常棒,很容易配置並且使用起來確實不錯。但如果集群的節點有12個以上,那麼你就會遇到問題。mongodb中的複製集有12個節點的限制,這裡是問題的描述,你可以追蹤這個問題看看是否已經被解決了。
主從複製不會確保高可用性

儘管已經不建議被使用了,不過mongodb還是提供了另外一種複製策略,即主從複製。它解決了12個節點限制問題,不過卻產生了新的問題:如果需要改變集群的主節點,那麼你必須得手工完成,感到驚訝?看看這個

鏈結吧。

不要使用32位版本

mongodb的32位版本也是不建議被使用的,因為你只能處理2gb大小的資料。還記得第乙個限制麼?這是mongodb關於該限制的

說明。

諮詢費非常非常昂貴(至少對於巴西的開發者與公司來說如此)

我不清楚其他國家的情況,不過至少在巴西mongodb的諮詢費是個天價。對於「

lightning consult」計畫來說,每小時的**是450美金,而你至少需要購買兩個小時的,換句話說,對於任何一家公司來說,每次諮詢的**至少是900美金。相比於redhat和oracle來說,這個**太高了。

差勁的管理工具

這對於初學者來說依然是個讓人頭疼的問題,mongodb的管理控制台太差勁了。我所知道的最好的工具是

robomongo,它對於那些初次使用的開發者來說非常趁手。

了解官方的限制

讓我感到驚訝的是,很少有人會查詢關於他們將要使用的工具的限制。幸好,mongodb的開發人員發布了一篇mongodb所有限制的

部落格,你可以提前了解相關資訊,避免在使用過程中難堪。

各位讀者,現在使用mongodb的公司也越來越多了,不妨與大家分享你在使用這個nosql資料庫時的一些經驗與教訓。

關於MongoDB你需要知道的幾件事

henrique lobo weissmann是一位來自於巴西的軟體開發者,他是itexto公司的聯合創始人,這是一家諮詢公司。近日,henrique在部落格上撰文談到了關於mongodb的一些內容,其中有些觀點值得我們,特別是正在和打算使用mongodb的開發者關注。到目前為止,mongodb在巴...

關於MongoDB你需要知道的幾件事

henrique lobo weissmann是一位來自於巴西的軟體開發者,他是itexto公司的聯合創始人,這是一家諮詢公司。近日,henrique在部落格上撰文談到了關於mongodb的一些內容,其中有些觀點值得我們,特別是正在和打算使用mongodb的開發者關注。到目前為止,mongodb在巴...

關於MongoDB你需要知道的幾件事

henrique lobo weissmann是一位來自於巴西的軟體開發者,他是itexto公司的聯合創始人,這是一家諮詢公司。近日,henrique在部落格上撰文談到了關於mongodb的一些內容,其中有些觀點值得我們,特別是正在和打算使用mongodb的開發者關注。到目前為止,mongodb在巴...