程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MongoDB數據庫 >> MongoDB綜合知識 >> MongoDB數據庫的特色和優點介紹

MongoDB數據庫的特色和優點介紹

編輯:MongoDB綜合知識

2011年將被記住,因為這一年SQL將死;這一年,關系數據庫從一線退下;這一年開發人員發現他們沒必要為了持久化數據,而將每個對象轉化為表格結構。

2011年是文檔數據庫的一年,盡管一直在穩步發展勢頭,通過過去八年多的發展,現在有各種穩定的文檔數據庫----從基於亞馬遜和谷歌的雲,到各種開放源碼工具,尤其是MongoDB。

那麼,MongoDB是什麼?這裡的五件事是每個開發人員應該知道的:

1) MongoDB是一個獨立的服務器;

如MySQL或PostreSQL 一樣,MongoDB提供偵聽端口以便接入。它提供了用於查詢,創建,更新和刪除的工具。從理論上講,你使用它的工作方式相同:連接,執行任務並關閉連接。

2)它是基於文檔的,而不是基於表格的;

MongoDB 沒有結構化語言。如果你想創建一個新的文檔類型,你不用做任何事來告訴數據庫關於這些數據的結構,而僅僅是存到數據庫中即可。

簡單的說,MongoDB使用類似JavaScript或PHP 的類型處理方式。也就是說,數據庫是靈活的弱類型。

雖然有一些數據是有限制條件的(大塊的數據可能需要一些明確的處理),但在大多數情況下,你可以像寫PHP代碼一樣編寫你的MongoDB代碼。

3)它是非結構化的;

還記得這些你寫的數據庫抽象層嗎?還記得那些你處理過的ORM層嗎?現在,你可以將它們全部丟棄。在MongoDB中你不需要他們。MongoDB沒有很多查詢語句。在大多數情況下,只需給它一個數組指定你想要的信息,然後它會給你返回文檔的數組。如果你想運行一些非常復雜的查詢(如Map-Reduce操作),可以向MongoDB傳遞JavaScript,其內部的JavaScript引擎可以解析這個腳本。

4)不必去學習另一種查詢語言;

開發時間也短,因為沒有結構需要管理和很少(如果有的話)的數據映射。

學習曲線很平滑,因為沒有新的查詢語言學習。代碼是簡潔的。畢竟,無須任何其他ORM,封裝可以非常簡單。你的代碼是未來的保證。向你的對象增加更多的字段是很輕松的。因此,需求變化了,你可以很快修改代碼以便適應。

MongoDB足以讓我意識到它有改變游戲規則的潛力。這也是讓大家主張使用新一代的文檔數據庫代替基於SQL的關系數據庫的原因。將關系數據庫留在塵土裡,更可能的是讓它們做它們能做好的事情:存儲屬於行和表的數據。

MongoDB 是用C++開發的面向文檔的數據庫,也就是反傳統的數據庫范式來設計的,把相關的對象都記錄到一個文檔裡,每個文檔內是schema-free的,也就是列名可以自由定義,比較靈活,特別是面對業務邏輯多變的應用場景十分給力。數據以BSON(類似JSON)的格式二進制存儲。不好的地方就是可能帶來一定的數據冗余和存儲開銷。

另外,MongoDB的索引機制和MySQL等數據庫是一樣的,可以利用傳統的關系數據庫的經驗來使用MongoDB的索引。

不像其他很多NoSQL產品由個別工程師根據應用場景開發出來的,MongoDB是有一個專門的公司 10gen 來維護。有一點要注意的是,MongoDB自己是不管理內存的,無法指定內存大小,完全交給操作系統來管理,因此有時候是不可控的,在生產環境使用必須在OS層面監控內存使用情況。

5)它具有強大的主流開發語言支持,如C#、C++、Java、PHP、Perl、Python、Ruby。

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