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