2019-04-15 mongdb和mysql的区别 mongdb那些有优点的实现原理

mongdb 和 mysql的应用场景,为什么mongdb有哪些优势
mongb优点:mongdb 适合于热数据的读写快速,高扩展性,自身的选举机制(如果主库出现问题,可以在副本集中选举出一个新的主库)
mongdb缺点:无事务,Mongdb2.0之后已经将全局锁变为db锁,但是还是有lock,可能导致队列堆积。

mongdb适合于 比如车辆轨迹信息,温湿度数据等机器采集到的数据,因为这些数据都是实时采集,实时更新。会随着时间推移,数据量越来越大,如果放在关系型数据库(比如MYSQL),一般在超过500w条之后,性能就会下降的比较快。
为什么mongdb可以适合于热数据的读写?
答:Mongdb使用的内存映射技术,写数据只要到内存就可以,到硬件是后台异步完成,
读快是因为你的数据可以在·内存中装下,只是读内存 自然就快了。文档性模式设计一般将所需的数据集中到一起,硬盘读写耗时最高的就是随机读写所产生的磁头定位时间,而数据集中到一起,就省下了随机定位的时间。

mongdb怎么保证数据的持久化

今天搞mysql数据库搞了一天,结果是因为root %的账号密码没设置
首先我用的docker执行的
docker run --privileged=true -v /etc/my.cnf,dst:/etc/my.cnf -v /var/own/mysqldata:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
docker run --name mysql-data -p 3306:3306 -v /mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="root" -d mysql

docker run -itd -p 3306:3306 --name test_mysql -v /home/mysql/mysql-files:/var/lib/mysql-files/ -v /usr/local/mysqlData/test/conf:/etc/mysql -v /usr/local/mysqlData/test/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --privileged=true --restart=always --dns=192.168.95.135 mysql

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
解决;

docker 容器默认启动之后,还需要执行一下改密码的操作,还有数据持久化怎么解决?
分步解决:
docker容器版本 如果不写tag默认就是最新版本
修改docker 镜像 实现自动修改密码 我自定义了Docker镜像
完成数据持久化

在虚拟机上通过Docker安装mysql

这两天踩了很多坑,最新的一个
image.png

解决办法:在docker run中加入 --privileged=true 给容器加上特定权限
原因:内部没有权限

image.png

原因分析:MySQL开启了DNS的反向解析功能,这样MySQL对连接的客户端会进行DNS主机名查找;
解决办法:
以后放弃csdn,只相信官网了,还是官方文档好
最后的启动命令是
docker run -itd -p 3306:3306 --name test_mysql -v /home/mysql/mysql-files:/var/lib/mysql-files/ -v /usr/local/mysqlData/test/conf:/etc/mysql -v /usr/local/mysqlData/test/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --privileged=true --restart=always --dns=192.168.95.135 mysql
成功


image.png

docker优点是什么,为什么用它?
优点:
1.简化配置:降低了硬件要求和应用环境之间的耦合度
2.代码流水线管理:开发到上线的环境保持统一
3.提升开发效率
4.隔离应用
5.整合服务器:由于没有多个操作系统的内存占用,以及能在多个实例中共享没有使用的内存
6.调试能力
7.多租户环境:可以为每一个租户的应用层的多个实例创建隔离的环境
8.快速部署
docker优点总结:简化配置,省掉操作系统的内存占用,共享多个实例中共享没有使用的内存,快速部署,隔离发布
缺点:
必须在64位机器上运行(现在大部分都是)
系统的linux内核必须是3.8
内核必须支持cgroups和命名空间

应用场景:
场景一:节省项目环境部署时间
场景二:环境一致性
场景三:持续集成
场景四:微服务
场景五:弹性伸缩
Docker特点:开箱即用,快速部署,可移植性强,环境隔离

docker为什么省内存?省的哪部分?

明天要做的,docker01重启一下 看持久化好使不,docker命令为什么一旦加上挂载就报莫名问题?docker优点是什么,为什么用它?虚拟机怎么设置桥接模式,在别的电脑上也能链接。mysql数据持久化 看公司项目socket怎么连接的 实现实时通知的 大概注意点 系统分析师的考试 正则表达式怎么写

你可能感兴趣的:(2019-04-15 mongdb和mysql的区别 mongdb那些有优点的实现原理)