在MongoDB的網站上,它這樣自我介紹:做以前你從未能做的事(Do What You Could Never Do Before)。為什么MongoDB敢這樣說?它有什么長處與不足?今天我們給大家拋磚引玉。
一、 MongoDB是什么?
“需求是創新之母。” 雖然這是句老話,但現在依然很受用!
過去的十年,我們將數據生成、存儲和分析的臨界點推上一個全新的高度。這個大躍進是我們向數字化的數據驅動的經濟又近了一步;這個大躍進也創造了它自身的需要。而這些問題及其解決方法通常都在大數據的保護傘之下。
想象一下:如今,臉書和谷歌產生了更多的數據,它們加在一起超過了前幾年的全球數據總量。伴隨數據生成的高速增長,隨之而來是存儲和規模的問題。看,所有人都希望臉書上的訂閱能夠被瞬間加載——我們憎恨端著手機和電腦在那兒傻傻等著它加載。可回頭想想,什么架構才能使我們有這樣快速體驗?數百萬的用戶同時向數據庫請求實時信息。再加上非結構化數據和系統需求(讓您可以快速添加新功能),這看上去更像是一個不可能完成的任務。
傳統的數據庫很難應付這種需求,且提升規模所需的成本令人望而卻步。本文給大家介紹一個新型的數據存儲系統,大家管它叫做MongoDB。它提供了無架構設計、高性能、高可用性和自動規模伸縮,這是當前所需要但傳統RDBMS系統無法滿足的性質。
維基上這么描述MongoDB
MongoDB(源自huMONGOus一詞,意為“堆積如山的”)是一個跨平臺的面向文檔的NoSQL數據庫。MongoDB避開了傳統的基于表格的關系型數據庫結構,代之以具有動態結構的類JSON文檔格式(MongoDB稱之為BSON),從而使一些特定類型應用的數據整合更容易、更快。在GNU Affero和Apach許可下發布的MongoDB是一個免費的開源軟件。
二、有誰在用MongoDB?
下面只列舉其中一部分。實際上,MongoDB在全球已有一千萬次以上的下載量,目前有三十萬人正在學習MongoDB。
三、對比傳統關系型數據庫
將關系型數據庫和MongoDB進行比較,就好似在比較一只獅子和一只老虎一般。雖然都是食肉動物,但是一個是獨自狩獵,另一個則是群體出動。SQL(老虎)有著一個固定的數據模型,其中的數據需要遵循架構的設計,這有助于組織分析例如銷售統計類的結構化數據。而另一方,MongoDB(獅子)是一個基于文檔的數據庫,它以文檔的形式存儲數據。雖然他們的方法不同,但依據組織化的需求,這兩者都需要數據存儲并選擇數據庫類型。
四、使用MongoDB有什么優點?
從上面的附圖你可以發現,當服務器上的查詢數量增加時,MongoDB就明顯是一個勝利者。MongoDB 非常適用于實時分析,它有著低延遲以及針對需求的高可用性。
MongoDB已經進入了前沿領域,因為各類組織需要分析半結構化、非結構化以及地理或空間數據,更因為現今世界原先的結構化數據正在被快速的改變。
傳統的關系型數據庫系統不能完全應付得了這些需求,因為它們固有的結構不允許它們處理這樣的需求。雖然關系型數據庫系統也在改變,來迎合數據的大爆發,但最適合處理當今數據的數據庫仍是像MongoDB這類文檔數據庫。