程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> MongoDB:逐漸變得無關緊要

MongoDB:逐漸變得無關緊要

編輯:DB2教程

MongoDB:逐漸變得無關緊要


摘要:與 TokuMX 和 PostgreSQL 相比較使得 MongoDB 處於劣勢。但它仍然是一款很好的產品,而且會繼續改進來與這些替代產品競爭,然而目前來看它最多只能排在第三名。2015年MongoDB的改進和發展,我們拭目以待。
【編者按】Henrique Lobo Weissmann 是一位來自於巴西的軟件開發者,他是 itexto 公司的聯合創始人,這是一家咨詢公司。Henrique 在博客上會談很多數據庫方面的內容,日前他撰文稱:非關系式數據庫MongoDB正逐漸變得無關緊要,值得大家關注,特別是正在和打算使用 MongoDB 的開發者關注。
以下為譯文:
我與MongoDB的關系可分為三個階段。對於目前處於第三階段的我來說,這款產品似乎變得無關緊要了。很快你就會明白為什麼我這麼說。

階段一:癡迷

我與MongoDB的第一次接觸十分神奇:一個poliglot持久性架構用它來處理部分系統,而框架的關系模型卻不是很適合。然而它運行得十分漂亮:快速、易於安裝和使用,並且運轉良好。不得不說,MongoDB很適合應用於此類情況。
它的表現震驚了我:事實上,我主要的查詢語言是JavaScript,這已經十分了不起。我從未奢望類似的東西能運行得如此出色。在那段時間裡,我詳細了解了這款產品以及如何管理它配給的文檔模型。

階段二:現實

也許這個階段更好的名字應該是成熟。在這個階段,我知道在什麼情況下該使用MongoDB,更重要的是,什麼時候不該使用MongoDB。這時,你會發現MongoDB是一款很好卻需要謹慎使用的產品。它提供的文檔模型強大到能幫你解決很多但卻不是全部問題:實際上,只是相當多而已。
我是從自己和別人的失敗上意識到了這個問題。很多人非常興奮的想要把世界簡化成一個模式,於是MongoDB就可以成為所有問題最完美的解決方法。但每當這些時刻,一些不符合想象卻真實存在的事實就會砸到你臉上證明你的想法是錯誤的:
關系模型並沒有它們表現的那麼糟糕。事實上,這種模式目前十分流行,而且在未來很長一段時間內它的地位都不會改變,究其原因:它管用。並且與NoSQL相反,我們手裡有各種適用於此模式的好的或者壞的的實踐方法。
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的改進和發展。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved