MongDB
1.MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫洗贰。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案赂蠢。
MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的贺辰。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式嵌施,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型饲化。Mongo最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言吗伤,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能吃靠,而且還支持對(duì)數(shù)據(jù)建立索引
特點(diǎn)
它的特點(diǎn)是高性能、易部署足淆、易使用巢块,存儲(chǔ)數(shù)據(jù)非常方便。主要功能特性有:
面向集合存儲(chǔ)巧号,易存儲(chǔ)對(duì)象類型的數(shù)據(jù)
模式自由族奢。
支持動(dòng)態(tài)查詢。
支持完全索引,包含內(nèi)部對(duì)象腥放。
支持查詢谈喳。
支持復(fù)制和故障恢復(fù)抑进。
使用高效的二進(jìn)制數(shù)據(jù)存儲(chǔ)弥姻,包括大型對(duì)象
自動(dòng)處理碎片南片,以支持云計(jì)算層次的擴(kuò)展性。
文件存儲(chǔ)格式為BSON(一種JSON的擴(kuò)展)庭敦。
可通過網(wǎng)絡(luò)訪問疼进。
使用原理
所謂“面向集合”(Collection-Oriented),意思是數(shù)據(jù)被分組存儲(chǔ)在數(shù)據(jù)集中秧廉,被稱為一個(gè)集合(Collection)伞广。每個(gè)集合在數(shù)據(jù)庫中都有一個(gè)唯一的標(biāo)識(shí)名,并且可以包含無限數(shù)目的文檔疼电。集合的概念類似關(guān)系型數(shù)據(jù)庫(RDBMS)里的表(table)嚼锄,不同的是它不需要定義任何模式(schema)。Nytro MegaRAID技術(shù)中的閃存高速緩存算法蔽豺,能夠快速識(shí)別數(shù)據(jù)庫內(nèi)大數(shù)據(jù)集中的熱數(shù)據(jù)区丑,提供一致的性能改進(jìn)。
模式自由(schema-free)修陡,意味著對(duì)于存儲(chǔ)在mongodb數(shù)據(jù)庫中的文件沧侥,我們不需要知道它的任何結(jié)構(gòu)定義。如果需要的話魄鸦,你完全可以把不同結(jié)構(gòu)的文件存儲(chǔ)在同一個(gè)數(shù)據(jù)庫里宴杀。
存儲(chǔ)在集合中的文檔,被存儲(chǔ)為鍵-值對(duì)的形式拾因。鍵用于唯一標(biāo)識(shí)一個(gè)文檔旺罢,為字符串類型,而值則可以是各種復(fù)雜的文件類型绢记。我們稱這種存儲(chǔ)形式為BSON(Binary Serialized Document Format)
MongoDB已經(jīng)在多個(gè)站點(diǎn)部署主经,其主要場(chǎng)景如下:
1)網(wǎng)站實(shí)時(shí)數(shù)據(jù)處理。它非常適合實(shí)時(shí)的插入庭惜、更新與查詢罩驻,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲(chǔ)所需的復(fù)制及高度伸縮性。
2)緩存护赊。由于性能很高惠遏,它適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后骏啰,由它搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載节吮。
3)高伸縮性的場(chǎng)景。非常適合由數(shù)十或數(shù)百臺(tái)服務(wù)器組成的數(shù)據(jù)庫判耕,它的路線圖中已經(jīng)包含對(duì)MapReduce引擎的內(nèi)置支持透绩。
不適用的場(chǎng)景如下:
1)要求高度事務(wù)性的系統(tǒng)。
2)傳統(tǒng)的商業(yè)智能應(yīng)用。
3)復(fù)雜的跨文檔(表)級(jí)聯(lián)查詢帚豪。