MongoDB介绍和应用场景,关系型数据库与非关系型数据库区别,docker安装MongoDB

1、MongoDB简介

1)非关系型数据库(NOSQL)介绍

NoSQL,指的是非关系型的数据库,它不同意传统关系型数据库。非关系型数据库以文档的,键值对的,图形的或基于列式存储的,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。

NoSQL的优点:

可扩展性强,支持大数据量存储;
操作简单;
开销很小;
存取性能高;
成本低;

NoSQL的缺点:

不提供对sql的支持;
不能体现表与表的关系;
大多数nosql都不支持事务;

NoSQL与关系型SQL的区别

SQL数据库是基于表的数据库,非关系型数据库以文档的,键值对的,图形的或基于列式存储的;
SQL数据库的数据结构必须事先先定义好,而NoSQL数据库的数据是动态无结构的;
SQL操作数据库统一简单,NoSQL操作可能不一致;
SQL数据一致性比较好,NoSQL无法保证数据一致性;
SQL随着数据量增大存取性能下降,而NoSQL的扩展性更好,存取性能也更好;
SQL更适合复杂的查询,而NoSQL没有提供复杂查询的api;

NoSQL与关系型SQL的应用场景

NoSQL可以用于那些安全性比较低,规模比较大,存取性能要求高,数据一致性要求低的场景,比如零时缓存一些下载的一些数据。
SQL更适合一些数据安全性要求高,结构关系复杂,存取相对不是特别频繁的场景。比如用户的信息表。
NoSQL和SQL两者选一?其实并不是,NoSQL可以极好的辅助SQL,比如redis可以缓存从SQL数据库查询的零时数据,可以减小对SQL数据库的频繁查询,减小SQL数据库的压力。

2)MongoDB是什么

MongoDB是一个可扩展、高性能的分布式文档存储数据库,它一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的非关系型数据库。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。

MongoDB的优点

面向集合存储,易存储对象类型的数据;
支持动态查询;
存储形式比较自由;
支持索引,支持查询;
支持复制和故障恢复;

MongoDB的应用场景

数据规模海量,数据增长性不固定;
数据安全性要求不高;
数据形式不固定;
用于缓存;
适合高性能扩展,适合多台服务器,适合分布式;
数据形式可以以key-value存储场景;

不适用的场景如下:

要求事务性的数据;
数据一致性要求高;
需要复杂的查询的场景;

2、docker安装MongoDB

1) 查询mongo镜像

docker search mongo
在这里插入图片描述

2) 拉取镜像

一般选择第一个,也就是star数量最多的那个jingx
docker pull docker.io/mongo
查看镜像
docker images
在这里插入图片描述

3) 运行MongoDB

docker run --name mongodb-server -v /home/mongodb0:/data/db -p 27017:27017 -d docker.io/mongo
参数说明:
–name 为容器命名
-v 将centos的文件挂载到容器的/data/db上
-p 将centos的端口映射到容器的端口上
-d 在后台运行
在这里插入图片描述
通过容器id进入容器
docker exec -it c3ae889459b7 bash
进入mongo命令
mongo
在这里插入图片描述

创建管理账户,账号root 密码 admin 数据库admin

切换到admin数据库
use admin
创建root账户
db.createUser( { user: "admin", pwd: "password", roles: [ { role: "root", db: "admin" } ] } );
在这里插入图片描述

创建普通账户 账号test 密码123456 数据库test

切换到test数据库
use test
db.createUser( { user: "test", pwd: "123456", roles: [ { role: "readWrite", db: "test" } ] } );
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/k393393/article/details/91353807
今日推荐