{eval=Array;=+count(Array);}
隨著云計算的高速發(fā)展,越來越多的應(yīng)用需要存儲海量數(shù)據(jù),并且對高并發(fā)和處理海量數(shù)據(jù)提出了更高的要求,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫對于這些應(yīng)用場景難以滿足應(yīng)用需求。
作為NoSQL數(shù)據(jù)庫之一的MongoDB數(shù)據(jù)庫能夠完全滿足和解決在海量數(shù)據(jù)存儲方面的應(yīng)用,越來越多的大網(wǎng)站和企業(yè)選擇MongoDB代替Mysql進(jìn)行存儲。
MongoDB[1] 是一個基于分布式文件存儲的數(shù)據(jù)庫。由C 語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。
MongoDB[2] 是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。Mongo最大的特點是他支持的查詢語言非常強(qiáng)大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。
(1)文件存儲格式為Bson,使用易于掌握和理解的Json風(fēng)格語法。相對Json來說,Bson擁有更好的性能,主要表現(xiàn)為更快的遍歷速度、操作更簡易、增加了額外的
數(shù)據(jù)類型。
(2)模式自由,支持嵌入子文檔和數(shù)組,無需事先創(chuàng)建數(shù)據(jù)結(jié)構(gòu),屬于逆規(guī)范化的數(shù)據(jù)模型,有利于提高查詢速度。
(3)動態(tài)查詢,支持豐富的查詢表達(dá)式,使用Json形式的標(biāo)記,可輕易查詢文檔中內(nèi)嵌的對象和數(shù)組及子文檔。
(4)完整的索引支持,包括文檔內(nèi)嵌對象和數(shù)據(jù),同時還提供了全文索引方式,MongoDB的查詢優(yōu)化器會分析查詢表達(dá)式,并生成一個高效的查詢計劃。
(5)使用高效的二進(jìn)制數(shù)據(jù)存儲,適合存儲大型對象(如高清圖片、視頻等)。
(6)支持多種復(fù)制模式,提供冗余及自動故障轉(zhuǎn)移。支持Master-Slave、Replica Pairs/Replica Sets、有限Master-Master模式。
(7)支持服務(wù)端腳本和Map/Reduce,可以實現(xiàn)海量數(shù)據(jù)計算,即實現(xiàn)云計算功能。
(8)性能高、速度快。在多數(shù)場合,其查詢速度對于MySQL要快的多,對于CPU占用非常小。部署很簡單,幾乎是零配置。
(9)自動處理碎片,支持自動分片功能實現(xiàn)水平擴(kuò)展的數(shù)據(jù)庫集群,可以動態(tài)添加或移除節(jié)點。
(10)內(nèi)置GridFS,支持海量存儲。
(11)可通過網(wǎng)絡(luò)訪問,采用高效的MongoDB網(wǎng)絡(luò)協(xié)議,在性能方面要優(yōu)于http或Rest協(xié)議。
(12)第三方支持豐富,MongoDB社區(qū)活躍,越來越多的公司和網(wǎng)站在生產(chǎn)環(huán)境中使用MongoDB進(jìn)行技術(shù)架構(gòu)優(yōu)化,同時由10gen公司官方提供強(qiáng)大技術(shù)支持。
MongoDB的主要目標(biāo)是在鍵/值存儲方式(提供了高性能和高度伸縮性)以及傳統(tǒng)的RDBMS系統(tǒng)(豐富的功能)架起一座橋梁,集兩者的優(yōu)勢于一身。
(1)網(wǎng)站數(shù)據(jù):MongoDB非常適合實時的插入,更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復(fù)制及高度伸縮性。
(2)緩存:由于性能很高,MongoDB也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由MongoDB搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。
(3)大尺寸,低價值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統(tǒng)的文件進(jìn)行存儲。
(4)高伸縮性的場景:MongoDB非常適合由數(shù)十或數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫。MongoDB的路線圖中已經(jīng)包含對MapReduce
引擎的內(nèi)置支持。
(5)用于對象及JSON數(shù)據(jù)的存儲:MongoDB的Bson數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。
如有不同觀點,歡迎發(fā)表評論。如果喜歡我的回答,歡迎“點贊、分享”。
0
回答10
回答0
回答10
回答0
回答0
回答6
回答0
回答0
回答0
回答