時間:2024-02-05 12:47作者:下載吧人氣:29
MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。
MongoDB是一個介于關(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格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。
MongoDB是文檔型的NoSQL數(shù)據(jù)庫,數(shù)據(jù)以文檔(對應(yīng)關(guān)系型數(shù)據(jù)庫的記錄)的形式在MongoDB中保存,文檔實際上就是一個個JSON字符串,使用JSON的好處是非常直觀,通過一系列的Key-Value鍵值對來表示數(shù)據(jù),符合我們的閱讀習(xí)慣。
在Java、Python中對JSON都有很好的支持,數(shù)據(jù)從MongoDB中讀取出來后,可無需轉(zhuǎn)換直接使用;支持豐富的數(shù)據(jù)結(jié)構(gòu),Value可以是普通的整型、字符串、數(shù)組、嵌套的子文檔,使用嵌套的好處是在MongoDB中僅需一次簡單的查詢就能夠獲取到你所需的數(shù)據(jù)。
MongoDB目前只支持單文檔事務(wù),MongoDB暫時不適合需要復(fù)雜事務(wù)的場景。
靈活的文檔模型JSON格式存儲最接近真實對象模型,對開發(fā)者友好,方便快速開發(fā)迭代,可用復(fù)制集滿足數(shù)據(jù)高可靠、高可用的需求,運維較為簡單、故障自動切換可擴展分片集群海量數(shù)據(jù)存儲。
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫在解決三高問題上的力不從心。
何為三高?
(1)游戲場景
使用MongoDB存儲游戲用戶信息、裝備、積分等,直接以內(nèi)嵌文檔的形式存儲,方便查詢、更新。
(2)物流場景
使用MongoDB存儲訂單信息、訂單狀態(tài)、物流信息,訂單狀態(tài)在運送過程中飛速迭代、以MongoDB內(nèi)嵌數(shù)組的形式來存儲,一次查詢就能將訂單所有的變更查出來,牛逼plus。
(3)社交場景
使用MongoDB存儲用戶信息,朋友圈信息,通過地理位置索引實現(xiàn)附近的人、定位功能。
(4)物聯(lián)網(wǎng)場景
使用MongoDB存儲設(shè)備信息、設(shè)備匯報的日志信息、并對這些信息進行多維度分析。
(5)視頻直播
使用MongoDB存儲用戶信息、點贊互動信息。
MySQL | MongoDB | 解釋說明 |
---|---|---|
database | database | 數(shù)據(jù)庫 |
table | collection | 表/集合 |
row | document | 行/文檔 |
column | field | 字段/域 |
index | index | 索引 |
join | 嵌入文檔 | 表關(guān)聯(lián)/MongoDB不支持join,MongoDB通過嵌入式文檔來替代多表連接 |
primary key | primary key | 主鍵/MongoDB自動將_id字段設(shè)置為主鍵 |
網(wǎng)友評論