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