轉載( NoSQL代表: Mongo DB(芒果數據庫) )
一 、MongoDB簡介
??????? MongoDB是一個基于分布式文件存儲的數據庫,由C++語言編寫,旨在為WEB應用提供可擴展的高性能數據存儲解決方案。其名字來自humongous這個單詞的中間部分,從名字可見其野心所在就是海量數據的處理。(humongous: 堆積如山 )2011年將被記住,因為這一年SQL將死;這一年,關系數據庫從一線退下;這一年開發人員發現他們沒必要為了持久化數據,而將每個對象轉化為表格結構。
??????? 2011年是文檔數據庫的一年,盡管一直在穩步發展勢頭,通過過去八年多的發展,現在有各種穩定的文檔數據庫從基于亞馬遜和谷歌的云,到各種開放源碼工具,尤其是MongoDB。
那么,MongoDB是什么?這里的五件事是每個開發人員應該知道的:
- MongoDB是一個獨立的服務器;
- 它是基于文檔的,而不是基于表格的;
- 它是非結構化的;
- 不必去學習另一種查詢語言;
- 它具有強大的主流開發語言支持,如 C#、C++、Java、PHP、Perl、Python、Ruby。
?????? 1、MongoDB 是一個獨立的服務器
如MySQL或PostgreSQL一樣,MongoDB提供偵聽端口以便接入。它提供了用于查詢,創建,更新和刪除的工具。從理論上講,你使用它的工作方式與你使用MySQL或PostgreSQL的工作方式相同:連接,執行任務,并關閉連接。
2、MongoDB是非結構化的
MongoDB 沒有結構化語言。如果你想創建一個新的文檔類型,你不用做任何事來告訴數據庫關于這些數據的結構,而僅僅是存到數據庫中即可。
簡單的說,MongoDB使用類似JavaScript或PHP的類型處理方式。也就是說,數據庫是靈活的弱類型。
雖然有一些數據是有限制條件的(大塊的數據可能需要一些明確的處理),但在大多數情況下,你可以像寫PHP代碼一樣編寫你的MongoDB代碼。
3、不必去學習另一種查詢語言
還記得這些你寫的數據庫抽象層嗎?還記得那些你處理過的ORM層嗎?現在,你可以將它們全部丟棄。在MongoDB中你不需要他們。MongoDB沒有很多查詢語句。在大多數情況下,只需給它一個數組指定你想要的信息,然后它會給你返回文檔的數組。如果你想運行一些非常復雜的查詢(如Map-Reduce操作),可以向MongoDB傳遞JavaScript,其內部的JavaScript引擎可以解析這個腳本。
4、MongoDB是神速的
開發時間也短,因為沒有結構需要管理和很少(如果有的話)的數據映射。
學習曲線很平滑,因為沒有新的查詢語言學習。代碼是簡潔的。畢竟,無須任何其他ORM,封裝可以非常簡單。你的代碼是未來的保證。向你的對象增加更多的字段是很輕松的。因此,需求變化了,你可以很快修改代碼以便適應。
MongoDB足以讓我意識到它有改變游戲規則的潛力。這也是讓大家主張使用新一代的文檔數據庫代替基于SQL的關系數據庫的原因。將關系數據庫留在塵土里,更可能的是讓它們做它們能做好的事情:存儲屬于行和表的數據。
二、MongoDB服務器安裝
MongoDB的官方下載站是http://www.mongodb.org/downloads,可以去上面下載最新的程序下來。在下載頁面可以看到,對操作系統支持很全面,OS X、Linux、Windows、Solaris都支持,而且都有各自的32位和64位版本。目前的穩定版本是1.8.1版本。
注意:
?
1. MongoDB 1.8.1 Linux版要求glibc必須是2.5以上,所以需要先確認操作系統的glibc的版本,筆者最初用Linux AS 4安裝不上,最后用的是RHEL5來安裝才成功的;
2. 在32位平臺MongoDB不允許數據庫文件(累計總和)超過2G,而64位平臺沒有這個限制。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
