mongodb簡(jiǎn)介

1. 什么是mongodb


MongoDB 不是芒果(mango),它在拉丁文中的原意是巨大的意思。如果用一句話來(lái)概括的話:MongoDB是一個(gè)高可用、分布式、靈活模式的文檔數(shù)據(jù)庫(kù),用于大容量數(shù)據(jù)存儲(chǔ)。文檔存儲(chǔ)一般用類似json的格式存儲(chǔ),存儲(chǔ)的內(nèi)容是文檔型的。這樣也就有機(jī)會(huì)對(duì)某些字段建立索引,實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)的某些功能。



2. 數(shù)據(jù)在mongodb中和mysql數(shù)據(jù)庫(kù)中的區(qū)別


mysql數(shù)據(jù)庫(kù)需要你把一個(gè)數(shù)據(jù)對(duì)象,拆分成零部件,然后存到各個(gè)相應(yīng)的表里,需要的是最后把它拼起來(lái)。

而MongoDB的文檔模式,與這個(gè)模式大不相同。由于我們的存儲(chǔ)單位是一個(gè)文檔,可以支持?jǐn)?shù)組和嵌套文檔,所以很多時(shí)候你直接用一個(gè)這樣的文檔就可以涵蓋這個(gè)客戶相關(guān)的所有個(gè)人信息。

下面可以用來(lái)存儲(chǔ)pepole的記錄示例來(lái)展示下數(shù)據(jù)在mongodb中和mysql數(shù)據(jù)庫(kù)中的區(qū)別:


雖然MongoDB的模型和關(guān)系型數(shù)據(jù)庫(kù)模型截然不同,但是關(guān)系型數(shù)據(jù)庫(kù)的一些必不可少的功能如動(dòng)態(tài)查詢、二級(jí)索引、聚合、關(guān)聯(lián)等在MongoDB中也有非常完善的支持。

3. mongodb的優(yōu)點(diǎn)


1.讀寫(xiě)效率高:由于文檔模型把相關(guān)數(shù)據(jù)集中在一塊,在普通機(jī)械盤(pán)上讀數(shù)據(jù)的時(shí)候不用花太多時(shí)間去定位磁頭,因此在IO性能上有先天獨(dú)厚的優(yōu)勢(shì)

2.可擴(kuò)展能力強(qiáng):關(guān)系型數(shù)據(jù)庫(kù)很難做分布式的原因就是多節(jié)點(diǎn)海量數(shù)據(jù)關(guān)聯(lián)有巨大的性能問(wèn)題。如果不考慮關(guān)聯(lián),數(shù)據(jù)分區(qū)分庫(kù),水平擴(kuò)展就比較簡(jiǎn)單;

3.動(dòng)態(tài)模式:文檔模型支持可變的數(shù)據(jù)模式,不要求每個(gè)文檔都具有完全相同的結(jié)構(gòu),例如在同一個(gè)文檔中支持同一個(gè)字段擁有不同的數(shù)據(jù)類型,對(duì)很多異構(gòu)數(shù)據(jù)場(chǎng)景支持非常好。

4.模型自然:文檔模型最接近于我們熟悉的對(duì)象模型,支持?jǐn)?shù)組和嵌套對(duì)象作為值。從內(nèi)存到存儲(chǔ),無(wú)需經(jīng)過(guò)ORM的雙向轉(zhuǎn)換,性能上和理解上都很自然易懂。

5.強(qiáng)大的查詢語(yǔ)言:豐富而富有表現(xiàn)力的查詢語(yǔ)言,使您可以按任意字段進(jìn)行過(guò)濾和排序,無(wú)論它在文檔中有多嵌套。支持聚合和其他現(xiàn)代用例,例如基于地理的搜索,圖形搜索和文本搜索。查詢本身就是JSON,因此很容易組合。不再需要串聯(lián)字符串來(lái)動(dòng)態(tài)生成SQL查詢。

4. mongodb的缺點(diǎn)


與關(guān)系型數(shù)據(jù)庫(kù),比如mysql截然不同的查詢語(yǔ)法,需要重新學(xué)習(xí)mongodb的操作語(yǔ)法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • MongoDB 是一個(gè)由 C++ 編寫(xiě)的基于分布式文件存儲(chǔ)的高性能、高可用、可擴(kuò)展的開(kāi)源文檔數(shù)據(jù)庫(kù),旨在為 WEB...
    yuanzicheng閱讀 746評(píng)論 0 49
  • 易于使用 MongoDB是一個(gè)面向文檔(document-oriented)的數(shù)據(jù)庫(kù),而不是關(guān)系型數(shù)據(jù)庫(kù); Mon...
    4ea0af17fd67閱讀 457評(píng)論 0 1
  • ??MongoDB就是數(shù)據(jù)庫(kù),是一款致力于web應(yīng)用程序和互聯(lián)網(wǎng)基礎(chǔ)設(shè)施而設(shè)計(jì)的數(shù)據(jù)庫(kù),是一種新型的Nosql數(shù)據(jù)...
    失心軒閱讀 193評(píng)論 0 0
  • 一. 簡(jiǎn)介 1.什么是MongoDB? MongoDB和MySQL一樣都是數(shù)據(jù)庫(kù), 都是存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù), 不同的是...
    低頭看云閱讀 313評(píng)論 0 1
  • MongoDB簡(jiǎn)介(Introduction) MongoDB is an open-source documen...
    __method__閱讀 562評(píng)論 0 0

友情鏈接更多精彩內(nèi)容