摸索了幾天,大體也初步算入了mongodb的門(mén),仔細(xì)一想,mongodb和傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)差別很大了。
傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)中,一個(gè)數(shù)據(jù)庫(kù)有一個(gè)或者多個(gè)表(Table),表中的數(shù)據(jù)是稱(chēng)之為記錄,一行一行的,每行數(shù)據(jù)分不同的字段。
舉一個(gè)容易理解的例子。一個(gè)人有姓名,性別,年齡,以及很多張銀行卡;
如果使用關(guān)系型數(shù)據(jù)庫(kù),我們可能會(huì)是使用兩張或者更多表來(lái)做記錄,一張用戶表來(lái)存用戶的基本信息,另一張表通過(guò)用戶id,和銀行卡id,通過(guò)多條記錄來(lái)存此人的多張銀行卡對(duì)應(yīng)關(guān)系;
那如果是在mongodb中,那就對(duì)應(yīng)一個(gè)文件了
舉個(gè)例子就是這樣的數(shù)據(jù)了
{Name:'小明',Sex:'男',Age:'25',BankCards:[ ‘123445678','12233333','5555555'] }
所以到目前的mongodb中,它是沒(méi)有關(guān)系這個(gè)概念的;
此圖反應(yīng)了mongdb和傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)(mysql,oracle)之間的對(duì)比;
應(yīng)該說(shuō)是,mongodb存的是一個(gè)完整的對(duì)象了,這個(gè)對(duì)象數(shù)據(jù)是已文檔的形式存儲(chǔ)的。至于它有什么優(yōu)點(diǎn),網(wǎng)上一大片說(shuō)它優(yōu)點(diǎn),這里抓網(wǎng)絡(luò)內(nèi)容貼上:
架構(gòu):MongoDB是文檔型數(shù)據(jù)庫(kù),其中一個(gè)集合保存不同的不同的文件。字段的數(shù)量,內(nèi)容和該文件的大小可以是不同于從一個(gè)文件復(fù)制到另一個(gè)。
一個(gè)單一的對(duì)象是結(jié)構(gòu)清晰
沒(méi)有復(fù)雜的連接
深查詢能力。 MongoDB支持動(dòng)態(tài)查詢使用基于文檔的查詢語(yǔ)言,如SQL幾乎一樣強(qiáng)大的文件
調(diào)優(yōu)
易于規(guī)模化:MongoDB是易于擴(kuò)展
不需要數(shù)據(jù)庫(kù)對(duì)象的應(yīng)用程序?qū)ο筠D(zhuǎn)換/映射
使用內(nèi)部存儲(chǔ)器存儲(chǔ)(窗口)工作組,從而實(shí)現(xiàn)更快的數(shù)據(jù)存取
不過(guò)缺點(diǎn)有很多,首先:不支持事物,而不會(huì)支持這種什么inner join ,left join等這樣的關(guān)系連接,(因?yàn)椴皇顷P(guān)系型數(shù)據(jù)庫(kù)嘛)。還有個(gè)我覺(jué)得是缺點(diǎn),占用空間!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
|
新聞熱點(diǎn)
疑難解答
圖片精選