1、MongoDB簡(jiǎn)介
MongoDB是面向文檔的NoSQL數(shù)據(jù)庫(kù)(是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品),用于大量數(shù)據(jù)存儲(chǔ)的分布式文件存儲(chǔ)型數(shù)據(jù)庫(kù)?;陟`活的json文檔模型(BSON)
,非常適合敏捷式快速開發(fā)。具有高可用,高水平擴(kuò)展能力,處理海量、高并發(fā)的數(shù)據(jù)應(yīng)用時(shí)非常有優(yōu)勢(shì)
。C++語(yǔ)言開發(fā)的
數(shù)據(jù)庫(kù)排行榜
2、優(yōu)勢(shì)
-
易用性:MongoDB是基于json格式的,
沒(méi)有強(qiáng)制的表定義約束,在文檔結(jié)構(gòu)發(fā)生變化時(shí)
并不需要如關(guān)系型數(shù)據(jù)庫(kù)一樣執(zhí)行DDL變更數(shù)據(jù)庫(kù)表結(jié)構(gòu),非常有利于業(yè)務(wù)的平滑升級(jí),因此MongoDB的開發(fā)效率更高,更適合敏捷開發(fā)
。 -
高性能:引入
WiredTiger存儲(chǔ)引擎
,在數(shù)據(jù)檢索上做了很多優(yōu)化, -
高可靠
- 單節(jié)點(diǎn)MongoDB來(lái)說(shuō),可以通過(guò)
Journal機(jī)制實(shí)現(xiàn)斷點(diǎn)保護(hù)
,這是一種WAL預(yù)寫日志機(jī)制,在發(fā)生斷電后,可以通過(guò)Journal日志來(lái)恢復(fù)數(shù)據(jù),默認(rèn)情況下Journal最多允許丟失50ms
內(nèi)的更新數(shù)據(jù)。 - 集群節(jié)點(diǎn)來(lái)說(shuō),MongoDB提供
副本集
架構(gòu)來(lái)支持?jǐn)?shù)據(jù)庫(kù)的高可用,在節(jié)點(diǎn)發(fā)生宕機(jī)時(shí),可以實(shí)現(xiàn)秒級(jí)切換。
- 單節(jié)點(diǎn)MongoDB來(lái)說(shuō),可以通過(guò)
-
高可擴(kuò)展:在集群架構(gòu)中,數(shù)據(jù)的讀寫會(huì)均勻的分布到多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)上,通過(guò)
分片的方式可以實(shí)現(xiàn)按需擴(kuò)展
。在業(yè)務(wù)數(shù)據(jù)持續(xù)增長(zhǎng)時(shí),借助分片集群可以輕松支持海量數(shù)據(jù)存取。 -
完備的索引:
支持各種豐富的索引類型
,包括單建索引、符合索引、唯一索引、地理空間索引、文本檢索索引、TTL索引等 -
強(qiáng)大的社區(qū)支持:國(guó)內(nèi)外各大云廠商基本都提供MongoDB協(xié)議兼容的數(shù)據(jù)庫(kù),有著龐大的用戶群體
3、MongoDB、mysql、es對(duì)比
功能模塊 | MongoDB | mysql | ElasticSearch |
---|---|---|---|
數(shù)據(jù)庫(kù)類型 | 非關(guān)系型數(shù)據(jù)庫(kù) | 關(guān)系型數(shù)據(jù)庫(kù) | 搜索與數(shù)據(jù)分析引擎 |
約束 | 靈活 | 強(qiáng)約束 | 靈活 |
數(shù)據(jù)庫(kù) | database | database | 無(wú)庫(kù)概念 |
表 | collection | table | index |
row | Document | 一條數(shù)據(jù) | Document |
字段 | field | column | field |
分布式 | 分布式 | 借助組件完成 | 分布式 |
擴(kuò)容 | 分片 | 分庫(kù)分表 | 分片 |
SQL | 類SQL | SQL | DSL |
4、docker安裝MongoDB
下載鏡像
docker pull mongo:4.4.5
安裝命令
docker run -it -d --name mongo
-v /usr/local/mongodb/data:/data/db
-v /usr/local/mongodb/backup:/data/backup
-e MONGO_INITDB_ROOT_USERNAME=admin
-e MONGO_INITDB_ROOT_PASSWORD=admin
-e TZ=Asia/Shanghai
-p 27017:27017
mongo:4.4.5 mongod --auth
-
-d: 后臺(tái)運(yùn)行容器;
-
–name: 指定容器名;
-
-p: 指定服務(wù)運(yùn)行的端口;
-
-v: 映射目錄或文件;
-
–privileged 擁有真正的root權(quán)限
-
–restart=always Docker服務(wù)重啟容器也啟動(dòng)
-
-e MONGO_INITDB_ROOT_USERNAME=admin 指定admin庫(kù)的用戶名,并設(shè)置超級(jí)管理員角色
dockerhub中描述 -
-e MONGO_INITDB_ROOT_PASSWORD=admin 指定admin庫(kù)的密碼,
-
-e TZ=Asia/Shanghai 設(shè)置容器時(shí)區(qū)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-515523.html
-
mongod --auth :容器默認(rèn)啟動(dòng)命令是mongod,我們認(rèn)證需要修改啟動(dòng)命為mongod --auth開啟認(rèn)證文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-515523.html
到了這里,關(guān)于MongoDB是什么、有哪些優(yōu)勢(shì)、對(duì)比mysql,es、docker安裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!