Henrique Lobo Weissmann是一位來(lái)自于巴西的軟件開發(fā)者,他是itexto公司的聯(lián)合創(chuàng)始人,這是一家咨詢公司。近日,Henrique在博客上撰文談到了關(guān)于MongoDB的一些內(nèi)容,其中有些觀點(diǎn)值得我們,特別是正在和打算使用MongoDB的開發(fā)者關(guān)注。 到目前為止,MongoDB在
Henrique Lobo Weissmann是一位來(lái)自于巴西的軟件開發(fā)者,他是itexto公司的聯(lián)合創(chuàng)始人,這是一家咨詢公司。近日,Henrique在博客上撰文談到了關(guān)于MongoDB的一些內(nèi)容,其中有些觀點(diǎn)值得我們,特別是正在和打算使用MongoDB的開發(fā)者關(guān)注。
到目前為止,MongoDB在巴西是最為流行的NoSQL數(shù)據(jù)庫(kù)(至少根據(jù)關(guān)于MongoDB的博客數(shù)量以及文章所判斷)。MongoDB是個(gè)非常棒的解決方案,不過(guò)困擾我們的是很少有人了解過(guò)關(guān)于它的一些限制。這樣的事情正在不斷上演:人們看到MongoDB的限制,心里卻認(rèn)為這些是它的Bug。
本文列舉了頗讓作者困惑的一些MongoDB限制,如果你也打算使用MongoDB,那么至少要提前了解這些限制,以免遇到的時(shí)候措手不及。
消耗磁盤空間
這是我的第一個(gè)困惑:MongoDB會(huì)消耗太多的磁盤空間了。當(dāng)然了,這與它的編碼方式有關(guān),因?yàn)镸ongoDB會(huì)通過(guò)預(yù)分配大文件空間來(lái)避免磁盤碎片問(wèn)題。它的工作方式是這樣的:在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),系統(tǒng)會(huì)創(chuàng)建一個(gè)名為[db name].0的文件,當(dāng)該文件有一半以上被使用時(shí),系統(tǒng)會(huì)再次創(chuàng)建一個(gè)名為[db name].1的文件,該文件的大小是方才的兩倍。這個(gè)情況會(huì)持續(xù)不斷的發(fā)生,因此256、512、1024、2048大小的文件會(huì)被寫到磁盤上。最后,再次創(chuàng)建文件時(shí)大小都將為2048Mb。如果存儲(chǔ)空間是項(xiàng)目的一個(gè)限制,那么你必須要考慮這個(gè)情況。該問(wèn)題有個(gè)商業(yè)解決方案,名字叫做TokuMX,使用后存儲(chǔ)消耗將會(huì)減少90%。此外,從長(zhǎng)遠(yuǎn)來(lái)看,repairDatabase與compact命令也會(huì)在一定程度上幫到你。通過(guò)復(fù)制集實(shí)現(xiàn)的數(shù)據(jù)復(fù)制效果非常棒,,不過(guò)也有限制
MongoDB中數(shù)據(jù)復(fù)制的復(fù)制集策略非常棒,很容易配置并且使用起來(lái)確實(shí)不錯(cuò)。但如果集群的節(jié)點(diǎn)有12個(gè)以上,那么你就會(huì)遇到問(wèn)題。MongoDB中的復(fù)制集有12個(gè)節(jié)點(diǎn)的限制,這里是問(wèn)題的描述,你可以追蹤這個(gè)問(wèn)題看看是否已經(jīng)被解決了。主從復(fù)制不會(huì)確保高可用性
盡管已經(jīng)不建議被使用了,不過(guò)MongoDB還是提供了另外一種復(fù)制策略,即主從復(fù)制。它解決了12個(gè)節(jié)點(diǎn)限制問(wèn)題,不過(guò)卻產(chǎn)生了新的問(wèn)題:如果需要改變集群的主節(jié)點(diǎn),那么你必須得手工完成,感到驚訝?看看這個(gè)鏈接吧。不要使用32位版本
MongoDB的32位版本也是不建議被使用的,因?yàn)槟阒荒芴幚?GB大小的數(shù)據(jù)。還記得第一個(gè)限制么?這是MongoDB關(guān)于該限制的說(shuō)明。咨詢費(fèi)非常非常昂貴(至少對(duì)于巴西的開發(fā)者與公司來(lái)說(shuō)如此)
我不清楚其他國(guó)家的情況,不過(guò)至少在巴西MongoDB的咨詢費(fèi)是個(gè)天價(jià)。對(duì)于“Lightning Consult”計(jì)劃來(lái)說(shuō),每小時(shí)的價(jià)格是450美金,而你至少需要購(gòu)買兩個(gè)小時(shí)的,換句話說(shuō),對(duì)于任何一家公司來(lái)說(shuō),每次咨詢的價(jià)格至少是900美金。相比于RedHat和Oracle來(lái)說(shuō),這個(gè)價(jià)格太高了。差勁的管理工具
這對(duì)于初學(xué)者來(lái)說(shuō)依然是個(gè)讓人頭疼的問(wèn)題,MongoDB的管理控制臺(tái)太差勁了。我所知道的最好的工具是RoboMongo,它對(duì)于那些初次使用的開發(fā)者來(lái)說(shuō)非常趁手。了解官方的限制
讓我感到驚訝的是,很少有人會(huì)查詢關(guān)于他們將要使用的工具的限制。幸好,MongoDB的開發(fā)人員發(fā)布了一篇MongoDB所有限制的博客,你可以提前了解相關(guān)信息,避免在使用過(guò)程中難堪。各位讀者,現(xiàn)在使用MongoDB的公司也越來(lái)越多了,不妨與大家分享你在使用這個(gè)NoSQL數(shù)據(jù)庫(kù)時(shí)的一些經(jīng)驗(yàn)與教訓(xùn)。
中文原文:
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com