這篇文章給大家分享的是有關(guān)MongDB有什么用的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)公司的客戶來(lái)自各行各業(yè),為了共同目標(biāo),我們?cè)诠ぷ魃厦芮信浜希瑥膭?chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對(duì)我們的要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。專業(yè)領(lǐng)域包括成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、電商網(wǎng)站開(kāi)發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開(kāi)發(fā)。
1. 什么是NOSQL
NoSQL:Not Only SQL,本質(zhì)也是一種數(shù)據(jù)庫(kù)的技術(shù),相對(duì)于傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)NoSQL不會(huì)遵循一些SQL的約束,比如:
1.1SQL標(biāo)準(zhǔn):select * from table_name update table_name set delete from table_name 這些傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)(Oracle、MySQL,DB2)等關(guān)系型數(shù)據(jù)都遵循的sql標(biāo)準(zhǔn)。
1.2事務(wù)的ACID特性:A(Atomicity原子性) C(Consistency一致性)I(Isolation 隔離性)D(Durability持久性)
1.3表結(jié)構(gòu)等(NoSQL沒(méi)有所謂的表結(jié)構(gòu))
2. NoSQL優(yōu)點(diǎn):
2.1滿足對(duì)數(shù)據(jù)庫(kù)的高并發(fā)讀寫(xiě)(一個(gè)應(yīng)用中最先出現(xiàn)性能瓶頸的就是DB層,一般Mysql能支持的并發(fā)在機(jī)器硬盤上為300左右,固態(tài)硬盤上為700左右。因此高并發(fā)場(chǎng)景下很容易突破數(shù)據(jù)庫(kù)的性能瓶頸,關(guān)系型數(shù)據(jù)庫(kù)在高并發(fā)讀寫(xiě)性能上用戶體驗(yàn)較差或者當(dāng)并發(fā)大到一定量是直接導(dǎo)致數(shù)據(jù)庫(kù)崩潰)
2.2對(duì)海量數(shù)據(jù)的搞笑存儲(chǔ)和訪問(wèn)(傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)當(dāng)單表數(shù)據(jù)超過(guò)700萬(wàn)的時(shí)候用戶體驗(yàn)就會(huì)極差,當(dāng)數(shù)據(jù)量大到一定程度的時(shí)候需要考慮分庫(kù)分表分區(qū)分片,讀寫(xiě)分離,集群等手段保證數(shù)據(jù)庫(kù)的性能。傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)的橫向擴(kuò)展或縱向擴(kuò)展維護(hù)成本較高,以及分布式事務(wù)的處理難度較大)
2.3對(duì)數(shù)據(jù)庫(kù)的高擴(kuò)展性和高可用性(相對(duì)于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)更容易實(shí)現(xiàn)水平擴(kuò)展和集群搭建)
2.4靈活的數(shù)據(jù)結(jié)構(gòu),滿足數(shù)據(jù)結(jié)構(gòu)不固定的場(chǎng)景(傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)有固定的表結(jié)構(gòu)當(dāng)需求頻繁變化而且數(shù)據(jù)結(jié)構(gòu)不定的時(shí)候,新的需求往往會(huì)因?yàn)樯婕氨斫Y(jié)構(gòu)的修改導(dǎo)致需求變更開(kāi)發(fā)工作量大或牽一發(fā)而動(dòng)全身的表結(jié)構(gòu)修改不能實(shí)現(xiàn)新的需求)
3. NoSQL缺點(diǎn):
3.1一般不支持事務(wù),即使現(xiàn)在一些NoSQL已經(jīng)支持了事務(wù)如redis,MongoDB但是它們的事務(wù)都是弱一致性的事務(wù),從事務(wù)支持的完整性和嚴(yán)格性上大不如關(guān)系型數(shù)據(jù)庫(kù)
3.2實(shí)現(xiàn)復(fù)雜的SQL查詢難度較大(比如要實(shí)現(xiàn)傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)多表關(guān)聯(lián)各種聚合函數(shù)的報(bào)表查詢使用NoSQL實(shí)現(xiàn)難度較大)
3.3運(yùn)維人員數(shù)據(jù)維護(hù)門檻較高(目前的運(yùn)維人員對(duì)關(guān)系型數(shù)據(jù)庫(kù)的維護(hù)比較拿手,但是要維護(hù)NoSql數(shù)據(jù)庫(kù)還需學(xué)習(xí))
3.4目前不是主流的數(shù)據(jù)庫(kù)技術(shù)(目前主流的數(shù)據(jù)庫(kù)技術(shù)依然是關(guān)系型數(shù)據(jù)庫(kù))
4. NoSql數(shù)據(jù)庫(kù)分類
5. Mongodb的基礎(chǔ)概念
目前在NoSql數(shù)據(jù)庫(kù)中Mongodb排名第一,因此學(xué)習(xí)Mongodb非常有必要
Mongdb:是一個(gè)數(shù)據(jù)庫(kù),高性能、無(wú)模式、文檔型NoSQL數(shù)據(jù)庫(kù),是目前NoSQL中最熱門的數(shù)據(jù)庫(kù),開(kāi)源產(chǎn)品,是NoSQL中功能最豐富且最像關(guān)系型數(shù)據(jù)庫(kù)的NoSQL數(shù)據(jù)庫(kù)
特性:
5.1面向集合文檔的存儲(chǔ):適合存儲(chǔ)Bson(json的擴(kuò)展)形式的數(shù)據(jù)
5.2格式自由,數(shù)據(jù)格式不固定,生產(chǎn)環(huán)境下修改結(jié)構(gòu)都不影響程序的運(yùn)行
5.3強(qiáng)大的查詢API,面向?qū)ο蟮牟樵冋Z(yǔ)言,基本覆蓋sql語(yǔ)言的所有功能
5.4完整的索引支持,支持查詢計(jì)劃
5.5支持復(fù)制(主從)和自動(dòng)故障轉(zhuǎn)移(高可用單點(diǎn)故障)
5.6支持二進(jìn)制數(shù)據(jù)及大型對(duì)象(文件)的搞笑存儲(chǔ)
5.7使用分片集群提升系統(tǒng)擴(kuò)展性
5.8使用內(nèi)存映射存儲(chǔ)引擎,把對(duì)硬盤的物理IO操作轉(zhuǎn)換為內(nèi)存操作提高讀寫(xiě)性能但比較吃內(nèi)存
6. Mongodb基本概念圖解
7. MongoDB概念與RDMS概念對(duì)比
8. 如何決定一個(gè)業(yè)務(wù)場(chǎng)景是否需要使用MongoDB
并沒(méi)有某一業(yè)務(wù)場(chǎng)景必須使用Mongodb才能解決,能用Mongodb解決的用關(guān)系型數(shù)據(jù)庫(kù)都能解決,但是當(dāng)選擇使用Mongodb可以讓問(wèn)題或業(yè)務(wù)場(chǎng)景解決的成本更低的時(shí)候就可以考慮使用Mongodb,問(wèn)題的解決成本包括(學(xué)習(xí)成本,開(kāi)發(fā)成本,運(yùn)維成本等)
以上如果第一個(gè)yes被否定就不建議使用mongodb,如果上述第一個(gè)必須yes的滿足需求其余的選項(xiàng)中滿足任意一個(gè)或多個(gè)都可以使用mongodb,滿足的項(xiàng)越多越能體現(xiàn)mongodb的優(yōu)勢(shì)。
9. MongoDB使用場(chǎng)景
Mongodb的應(yīng)用已經(jīng)***到各個(gè)計(jì)算機(jī)軟件領(lǐng)域,如游戲、物流、電商、內(nèi)容管理、社交網(wǎng)絡(luò)、物聯(lián)網(wǎng)、視頻直播等
9.1游戲場(chǎng)景:使用Mongodb存儲(chǔ)游戲用戶信息,用戶的裝備,積分等直接以內(nèi)嵌文檔的形式存儲(chǔ),方便查詢更新
9.2物流場(chǎng)景:使用Mongodb存儲(chǔ)商品評(píng)論、訂單信息,訂單狀態(tài)狀態(tài)在運(yùn)送過(guò)程中會(huì)不斷更新,以Mongodb內(nèi)嵌數(shù)組的形式來(lái)存儲(chǔ),一次查詢就能將訂單所有的變更讀取出來(lái)
9.3社交場(chǎng)景:使用Mongodb存儲(chǔ)用戶信息,以及用戶發(fā)表的朋友圈信息,通過(guò)地理位置索引實(shí)現(xiàn)查找附近的人,服務(wù)場(chǎng)所等功能
9.4物聯(lián)網(wǎng)場(chǎng)景:使用Mongodb存儲(chǔ)所有接入的只能設(shè)備的信息,以及設(shè)備匯報(bào)的日志信息,并對(duì)這些信息進(jìn)行多維度的分析
9.5視頻直播:使用Mongodb存儲(chǔ)用戶信息,禮物信息等
10. 那些業(yè)務(wù)場(chǎng)景下不能使用MongoDB
10.1要求高度的事務(wù)性的系統(tǒng):例如銀行系統(tǒng)、財(cái)務(wù)系統(tǒng)、支付系統(tǒng)等,因?yàn)镸ongodb對(duì)事務(wù)的支持完整性和嚴(yán)格性較弱
10.2傳統(tǒng)的商業(yè)智能應(yīng)用:特定問(wèn)題的數(shù)據(jù)分析,多數(shù)據(jù)實(shí)體關(guān)聯(lián)(多表join操作)涉及到復(fù)雜的關(guān)聯(lián)查詢的報(bào)表系統(tǒng),高度優(yōu)化查詢的系統(tǒng)
10.3使用sql方便,數(shù)據(jù)結(jié)構(gòu)相對(duì)固定以上情況不建議使用Mongodb
感謝各位的閱讀!關(guān)于“MongDB有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)站名稱:MongDB有什么用
文章源于:http://chinadenli.net/article42/ppshhc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、服務(wù)器托管、軟件開(kāi)發(fā)、ChatGPT、微信小程序、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)