與 TokuMX 和 PostgreSQL 相比較使得 MongoDB 處於劣勢。但它仍然是一款很好的產品,並且會繼續改進來與這些替代產品競爭,然而目前來看它最多隻能排在第三名。2015年MongoDB的改進和發展,咱們拭目以待。html
【編者按】Henrique Lobo Weissmann 是一位來自於巴西的軟件開發者,他是 itexto 公司的聯合創始人,這是一家諮詢公司。Henrique 在博客上會談不少數據庫方面的內容,日前他撰文稱:非關係式數據庫MongoDB正逐漸變得可有可無,值得你們關注,特別是正在和打算使用 MongoDB 的開發者關注。數據庫
如下爲譯文:
架構
我與MongoDB的關係可分爲三個階段。對於目前處於第三階段的我來講,這款產品彷佛變得可有可無了。很快你就會明白爲何我這麼說。框架
我與MongoDB的第一次接觸十分神奇:一個poliglot持久性架構用它來處理部分系統,而框架的關係模型卻不是很適合。然而它運行得十分漂亮:快速、易於安裝和使用,而且運轉良好。不得不說,MongoDB很適合應用於此類狀況。工具
它的表現震驚了我:事實上,我主要的查詢語言是JavaScript,這已經十分了不得。我從未奢望相似的東西能運行得如此出色。在那段時間裏,我詳細瞭解了這款產品以及如何管理它配給的文檔模型。性能
也許這個階段更好的名字應該是成熟。在這個階段,我知道在什麼狀況下該使用MongoDB,更重要的是,何時不應使用MongoDB。這時,你會發現MongoDB是一款很好卻須要謹慎使用的產品。它提供的文檔模型強大到能幫你解決不少但卻不是所有問題:實際上,只是至關多而已。spa
我是從本身和別人的失敗上意識到了這個問題。不少人很是興奮的想要把世界簡化成一個模式,因而MongoDB就能夠成爲全部問題最完美的解決方法。但每當這些時刻,一些不符合想象卻真實存在的事實就會砸到你臉上證實你的想法是錯誤的:orm
關係模型並無它們表現的那麼糟糕。事實上,這種模式目前十分流行,並且在將來很長一段時間內它的地位都不會改變,究其緣由:它管用。而且與NoSQL相反,咱們手裏有各類適用於此模式的好的或者壞的的實踐方法。htm
ACID事務。MongoDB有一點惱人的地方:不能建立一個事務處理多個文檔。因而問題來了:多數狀況下,你必須同時進行多文檔處理。事務
在你知道你的系統須要什麼以前,全部以上談到的強大性能,都和你關係不大。
在這個階段,全部的激動人心和相見恨晚都消失了,這是全部人都會有的。這時,你會知道這款工具能夠作什麼以及不能作什麼。這是最好的階段。
如今MongoDB對於我來講已經變得可有可無了。固然不是指文檔模型,而是產品。有一天早上我醒來,忽然意識到我再也不須要MongoDB了,由於對於個人項目來講,其替代品更具吸引力。它們是分批來的。
第一波:TokuMX
TokuMX是MongoDB的一個分支,我喜歡稱之爲「MongoDB迷人的雙胞胎兄弟」。它與MongoDB使用一樣的通訊協議,採用基本相同的命令,並可與MongoDB 100%兼容。但它具備一些MongoDB沒有的強大優點:
能夠進行多文檔ACID處理。
快於MongoDB(快50倍速)。
存儲消耗比MongoDB少90%。
與MongoDB 100%兼容。全部你須要作的就是將MongoDB實例更換成TokuMX,而後轉移數據(這是至關容易的),這樣你就大功告成了。
是的,與MongoDB同樣,它也是開源的,並且有運行很是好的免費版本。固然,它也不是徹底無懈可擊。它有兩個侷限:
沒有Windows發佈(Distribution )。
目前Java庫還不能提供MongoDB ACID執行的本地支持。它可使用,但仍須要一些樣板代碼。
TokuMX第一次讓我意識到MongoDB對我來講彷佛可有可無。固然,這可能只是暫時的:在往後版本發佈後,MongoDB仍有可能擊敗TokuMX。可是,也只能寄但願於往後版本。目前爲止,它作不到。
第二波:PostgreSQL
若是說TokuMX讓我以爲MongoDB可有可無,那麼PostgreSQL 9.2則強化了這一印象。自9.2版本,PosetgreSQL開始對JSON和JSONB數據類型提供支持。這是一個有意思的解決方案,由於它,我能夠獲得關係模型中具備文檔靈活性的好的部分。而全部這一切都基於一樣的產品。太好了!
可是MongoDB曾比PostgreSQL的具備更高性能。我說「曾」是由於PostgreSQL 9.4版本使其變成了歷史:最近的基準顯示,PostgreSQL在處理JSON數據類型上比MongoDB更快。我沒有想要比較PostgreSQL和TokuMX,但鑑於二者如今都比MongoDB擁有更好的性能,我想你們已經清楚個人觀點了。
結論
與 TokuMX 和 PostgreSQL 相比較使得 MongoDB 處於劣勢。但它仍然是一款很好的產品,並且會繼續改進來與這些替代產品競爭,然而目前來看它最多隻能排在第三名。不過資本市場對 MongoDB 很是承認,最新消息顯示,2015年MongoDB獲8000萬美圓融資,估值超過15億美圓。期待MongoDB的改進和發展。