為什麼MongoDB敢說“做以前你從未能做的事”(1)
在MongoDB的網站上,它這樣自我介紹:做以前你從未能做的事(Do What You Could Never Do Before)。為什麼MongoDB敢這樣說?它有什麼長處與不足?今天我們給大家拋磚引玉。
一、 MongoDB是什麼?
“需求是創新之母。” 雖然這是句老話,但現在依然很受用!
過去的十年,我們將資料產生、儲存和分析的臨界點推上一個全新的高度。這個大躍進是我們向數字化的資料驅動的經濟又近了一步;這個大躍進也創造了它自身的需要。而這些問題及其解決方案通常都在大資料的保護傘之下。
想象一下:如今,臉書和Google產生了更多的資料,它們加在一起超過了前幾年的全球資料總量。伴隨資料產生的高速增長,隨之而來是儲存和規模的問題。看,所有人都希望臉書上的訂閱能夠被瞬間載入——我們憎恨端著手機和電腦在那兒傻傻等著它載入。可回頭想想,什麼架構才能使我們有這樣快速體驗?數百萬的使用者同時向資料庫請求即時資訊。再加上非結構化資料和系統需求(讓您可以快速添加新功能),這看上去更像是一個不可能完成的任務。
傳統的資料庫很難應付這種需求,且提升規模所需的成本令人望而卻步。本文給大家介紹一個新型的資料存放區系統,大家管它叫做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這類文檔資料庫。