關(guān)于MongoDB數(shù)據(jù)庫核心概念
MongoDB數(shù)據(jù)庫核心概念
1.NoSQL數(shù)據(jù)庫介紹
NoSQL意思是不僅僅是sql。
NoSQL指的是菲關(guān)系型數(shù)據(jù)庫,NoSQL有時稱作Not Only SQL的縮寫,是對不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)的統(tǒng)稱。
NoSQL就是非關(guān)聯(lián)形式的數(shù)據(jù)庫,數(shù)據(jù)存儲是key value形式。
NoSQL類型的數(shù)據(jù)存儲不需要固定的模式,無需多余操作就可以橫向擴展。
2.MongoDB數(shù)據(jù)庫介紹
MongoDB由C++語言編寫,是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng),是專為可擴展性、高性能和高可用性設(shè)計的數(shù)據(jù)庫,是非關(guān)系型數(shù)據(jù)庫中功能最豐富,最像關(guān)系型數(shù)據(jù)庫,MongoDB的數(shù)據(jù)結(jié)構(gòu)是json和bjson格式。
MongoDB是可以應(yīng)用于各種規(guī)模的企業(yè),各個行業(yè)以及各類應(yīng)用程序的開源數(shù)據(jù)庫,作為一個適用于敏捷開發(fā)的數(shù)據(jù)庫,MongoDB的數(shù)據(jù)模式可以隨著應(yīng)用程序的發(fā)展靈活的更新。
隨著應(yīng)用程序的更新,數(shù)據(jù)庫某張表可能需要增加一個或多個字段,而mysql這種關(guān)系型數(shù)據(jù)庫需要修改表結(jié)構(gòu),并且在更新成千上萬條數(shù)據(jù),這個過程可能會導(dǎo)致數(shù)據(jù)庫死鎖,這種更新字段放到了非關(guān)系型數(shù)據(jù)庫mongodb中,就會變得非常簡單,只需要添加新字段后,新數(shù)據(jù)進來時應(yīng)用即可,舊數(shù)據(jù)不會有變動,大大減少了數(shù)據(jù)庫的壓力。
MongoDB是一種叫做BSON(二進制JSON)的存儲形式作為數(shù)據(jù)存儲。
3.MongoDB支持的數(shù)據(jù)格式
3.1.JSON格式的數(shù)據(jù)類型
JSON是一種輕量級的數(shù)據(jù)交換格式,json采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣,這些特性使json成為理想的數(shù)據(jù)交換語言,易于人閱讀和編寫,同時也易于機器解析和生成。
MongoDB使用json文檔存儲記錄。
json格式:
{ "id": "f274ef35-05a2-40c6-9b84-ff1e97702300", "version": "7.6.2", "hostname": "nginx-6b949875bc-hrzrp", "ephemeral_id": "1025c85b-df07-4c4b-98d4-f5593293ef0e", "type": "filebeat" }
json格式解析網(wǎng)站:https://www.bejson.com/
3.2.BSON格式
BSON是一種類JSON的二進制形式的存儲格式,簡稱Binary JSON,它和json一樣,支持內(nèi)嵌的文檔對象和數(shù)組對象,但是BSON有JSON沒有的一些數(shù)據(jù)類型,比如Date和BinData類型。
BSON的優(yōu)點是靈活性高,但它的缺點就是空間利用率不是很理想。
BSON的特點:輕量性、可遍歷性、高效性。
4.MongoDB數(shù)據(jù)庫的特性
高性能
- MongoDB提供高性能的數(shù)據(jù)持久化,尤其是支持嵌入式數(shù)據(jù)模型減少數(shù)據(jù)庫系統(tǒng)上的I/O操作。
- MySQL需要查詢10張表,MongoDB一張表就可以搞定。
- 豐富的語言查詢,MongoDB支持豐富的查詢語言來進行讀寫操作以及數(shù)據(jù)匯總。
高可用性
- MongoDB的復(fù)制工具是副本集,提供自動故障轉(zhuǎn)移和數(shù)據(jù)冗余。
- MongoDB之前有主從復(fù)制,后來的主從復(fù)制集群稱之為副本集。
水平可擴展性
- MongoDB提供可擴展性,作為其核心功能的一部分,分片是將數(shù)據(jù)分散在一組機器上。
- MongoDB副本集擴容也無需像redis需要遷移槽位,MongoDB可以直接擴容
支持多種存儲引擎
- WiredTiger存儲引擎、MMAPv1存儲引擎和InMemory引擎。
5.MongoDB程序
MOngoDB Derives:客戶端程序
MongoDB Stitch:API服務(wù)
MongoDB Atlas:云上部署MongoDB
MongoDB Cloud Manager:管理MongoDB的軟件包
MongoDB Charts:可視化圖表
6.MongoDB應(yīng)用場景
游戲場景
- 使用 MongoDB 存儲游戲用戶信息,用戶的裝備、積分等直接以內(nèi)嵌文檔的形式存儲,方便查詢、更新。
物流場景
- 使用 MongoDB 存儲訂單信息,訂單狀態(tài)在運送過程中會不斷更新,以 MongoDB 內(nèi)嵌數(shù)組的形式來存儲,一次查詢就能將訂單所有的變更讀取出來。
社交場景
- 使用 MongoDB 存儲存儲用戶信息,以及用戶發(fā)表的朋友圈信息,通過地理位置索引實現(xiàn)附近的人、地點等功能。
物聯(lián)網(wǎng)場景
- 使用 MongoDB 存儲所有接入的智能設(shè)備信息,以及設(shè)備匯報的日志信息,并對這些信息進行多維度的分析。
視頻直播
- 使用 MongoDB 存儲用戶信息、禮物信息等,用戶評論。
電商場景
- 商城上衣和褲子兩種商品,除了有共同屬性,如產(chǎn)地、價格、材質(zhì)、顏色等外,還有各自有不同的屬性集,如上衣的獨有屬性是肩寬、胸圍、袖長等,褲子的獨有屬性是臀圍、腳口和褲長等。
到此這篇關(guān)于關(guān)于MongoDB數(shù)據(jù)庫核心概念的文章就介紹到這了,更多相關(guān)MongoDB數(shù)據(jù)庫概念內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mongodb如何對文檔內(nèi)數(shù)組進行過濾的方法步驟
這篇文章主要介紹了mongodb如何對文檔內(nèi)數(shù)組進行過濾的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs)
這篇文章主要介紹了mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs),需要的朋友可以參考下2017-06-06MongoDB創(chuàng)建與刪除數(shù)據(jù)庫
這篇文章介紹了MongoDB創(chuàng)建與刪除數(shù)據(jù)庫的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-061億條記錄的MongoDB數(shù)據(jù)庫隨機查詢性能測試
這篇文章主要為大家分享下1億條記錄的MongoDB數(shù)據(jù)庫隨機查詢性能測試結(jié)果,需要的朋友可以參考下2013-12-12