MongoDB (索引)使用B-樹
1、特點:
高性能、易部署、易使用,存儲數據非常方便。主要功能特性有:
面向集合存儲,易存儲對象類型的數據。
模式自由。
支持動態查詢。
支持完全索引,包含內部對象。
支持查詢。
支持複製和故障恢復。
使用高效的二進制數據存儲,包括大型對象(如視頻等)。
自動處理碎片,以支持雲計算層次的擴展性
支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++語言的驅動程序,社區中也提供了對Erlang及.NET等平臺的驅動程序。
文件存儲格式爲BSON(一種JSON的擴展)。
可通過網絡訪問。
2、功能:
面向集合的存儲:適合存儲對象及JSON形式的數據。
動態查詢:Mongo支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
完整的索引支持:包括文檔內嵌對象及數組。Mongo的查詢優化器會分析查詢表達式,並生成一個高效的查詢計劃。
查詢監視:Mongo包含一個監視工具用於分析數據庫操作的性能。
複製及自動故障轉移:Mongo數據庫支持服務器之間的數據複製,支持主-從模式及服務器之間的相互複製。複製的主要目標是提供冗餘及自動故障轉移。
高效的傳統存儲方式:支持二進制數據及大型對象(如照片或圖片)
自動分片以支持雲級別的伸縮性:自動分片功能支持水平的數據庫集羣,可動態添加額外的機器。
3、適用場合:
網站數據:Mongo非常適合實時的插入,更新與查詢,並具備網站實時數據存儲所需的複製及高度伸縮性。
緩存:由於性能很高,Mongo也適合作爲信息基礎設施的緩存層。在系統重啓之後,由Mongo搭建的持久化緩存層可以避免下層的數據源 過載。
大尺寸,低價值的數據:使用傳統的關係型數據庫存儲一些數據時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統的文件進行存儲。
高伸縮性的場景:Mongo非常適合由數十或數百臺服務器組成的數據庫。Mongo的路線圖中已經包含對MapReduce引擎的內置支持。
用於對象及JSON數據的存儲:Mongo的BSON數據格式非常適合文檔化格式的存儲及查詢。
二、MongoDB要注意的問題
1 因爲MongoDB是全索引的,所以它直接把索引放在內存中,因此最多支持2.5G的數據。如果是64位的會更多。
2 因爲沒有恢復機制,因此要做好數據備份
3 因爲默認監聽地址是127.0.0.1,因此要進行身份驗證,否則不夠安全;如果是自己使用,建議配置成localhost主機名
4 通過GetLastError確保變更。(這個不懂,實際中沒用過)
三、MongoDB結構介紹
MongoDB中存儲的對象是BSON,是一種類似JSON的二進制文件,它是由許多的鍵值對組成。