1、MongoDB简介
MongoDB是面向文档的NoSQL数据库(是一个介于关系数据库和非关系数据库之间的产品),用于大量数据存储的分布式文件存储型数据库。基于灵活的json文档模型(BSON)
,非常适合敏捷式快速开发。具有高可用,高水平扩展能力,处理海量、高并发的数据应用时非常有优势
。C++语言开发的
数据库排行榜
2、优势
-
易用性:MongoDB是基于json格式的,
没有强制的表定义约束,在文档结构发生变化时
并不需要如关系型数据库一样执行DDL变更数据库表结构,非常有利于业务的平滑升级,因此MongoDB的开发效率更高,更适合敏捷开发
。 -
高性能:引入
WiredTiger存储引擎
,在数据检索上做了很多优化, -
高可靠
- 单节点MongoDB来说,可以通过
Journal机制实现断点保护
,这是一种WAL预写日志机制,在发生断电后,可以通过Journal日志来恢复数据,默认情况下Journal最多允许丢失50ms
内的更新数据。 - 集群节点来说,MongoDB提供
副本集
架构来支持数据库的高可用,在节点发生宕机时,可以实现秒级切换。
- 单节点MongoDB来说,可以通过
-
高可扩展:在集群架构中,数据的读写会均匀的分布到多个数据库节点上,通过
分片的方式可以实现按需扩展
。在业务数据持续增长时,借助分片集群可以轻松支持海量数据存取。 -
完备的索引:
支持各种丰富的索引类型
,包括单建索引、符合索引、唯一索引、地理空间索引、文本检索索引、TTL索引等 -
强大的社区支持:国内外各大云厂商基本都提供MongoDB协议兼容的数据库,有着庞大的用户群体
3、MongoDB、mysql、es对比
功能模块 | MongoDB | mysql | ElasticSearch |
---|---|---|---|
数据库类型 | 非关系型数据库 | 关系型数据库 | 搜索与数据分析引擎 |
约束 | 灵活 | 强约束 | 灵活 |
数据库 | database | database | 无库概念 |
表 | collection | table | index |
row | Document | 一条数据 | Document |
字段 | field | column | field |
分布式 | 分布式 | 借助组件完成 | 分布式 |
扩容 | 分片 | 分库分表 | 分片 |
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: 后台运行容器;
-
–name: 指定容器名;
-
-p: 指定服务运行的端口;
-
-v: 映射目录或文件;
-
–privileged 拥有真正的root权限
-
–restart=always Docker服务重启容器也启动
-
-e MONGO_INITDB_ROOT_USERNAME=admin 指定admin库的用户名,并设置超级管理员角色
dockerhub中描述 -
-e MONGO_INITDB_ROOT_PASSWORD=admin 指定admin库的密码,
-
-e TZ=Asia/Shanghai 设置容器时区文章来源:https://www.toymoban.com/news/detail-515523.html
-
mongod --auth :容器默认启动命令是mongod,我们认证需要修改启动命为mongod --auth开启认证文章来源地址https://www.toymoban.com/news/detail-515523.html
到了这里,关于MongoDB是什么、有哪些优势、对比mysql,es、docker安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!