设为首页收藏本站

安徽论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12196|回复: 0

MySQL数据库主从复制与读写分离

[复制链接]

63

主题

483

回帖

923

积分

高级会员

Rank: 4

积分
923
发表于 2022-3-26 10:59:23 | 显示全部楼层 |阅读模式
网站内容均来自网络,本站只提供信息平台,如有侵权请联系删除,谢谢!
目录


一.主从复制

       主从复制:在实际的生产中,为了解决Mysql的单点故障以及提高MySQL的整体服务性能,一般都会采用主从复制。即:对数据库中的数据、语句做备份。


主从复制三线程

       Mysql的主从复制中主要有三个线程:master(binlog dump thread)、slave(I/O thread 、SQL thread),Master一条线程和Slave中的两条线程。
主从复制过程

主从复制的过程:

master主要负责Master库中有数据更新的时候,会按照binlog格式,将更新的事件类型写入到主库的binlog文件中。Master会创建log dump线程通知Slave主库中存在数据更新。
I/O thread线程在Slave中创建,该线程用于请求Master,Master会返回binlog的名称以及当前数据更新的位置、binlog文件位置的副本。然后,将binlog保存在 relay log(中继日志) 中,中继日志也是记录数据更新的信息。
SQL线程也是在Slave中创建的,当Slave检测到中继日志有更新,会将更新的内容同步到Slave数据库中,保证了主从的数据的同步。
主从复制策略

主从复制的策略:

同步策略:Master会等待所有的Slave都回应后才会提交,这个主从的同步 的性能会严重的影响。
半同步策略:Master至少会等待一个Slave回应后提交。
异步策略:Master不用等待Slave回应就可以提交。
延迟策略:Slave要落后于Master指定的时间。
对于不同的业务需求,有不同的策略方案,但是一般都会采用最终一致性,不会要求强一致性,强一致性会严重影响性能。

主从复制高延迟

       主从复制高延迟的原因
master 服务器高并发,形成大量事务
网络延迟
主从硬件设备导致(cpu 主频、内存 io、硬盘 io)
本来就不是同步复制、而是异步复制
       主从复制高延迟的解决办法
从库优化 Mysql 参数。比如增大 innodb_buffer_pool_size,让更多操作在 - mysql 内存中完成,减少磁盘操作
从库使用高性能主机(高性能 cpu、大内存),避免使用虚拟云主机,使用物理主机,提升 I/O 吞吐量
从库使用 SSD 磁盘
网络优化,避免跨机房实现同步

二.读写分离



读写分离概念

       读写分离:读写分离是让主数据库处理事务性增、删、改操作(INSERT、UPDATE、DELETE),而从数据库处理查(SELECT) 操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库中。

读写分离原因与场景

       读写分离原因:读写量很大,为了提升数据库读写性能,将读写进行分离;多机房下如果写少读多,同时基于数据一致性考虑,只有一个主库存入所有的数据写入,本地再做从库提供读取,减少多机房间直接读取带来的时延。
       读写分离使用场景:程序使用数据库较多时,而更新少,查询多的情况下会考虑使用。利用数据库主从同步,再通过读写分离可以分担数据库压力,提高性能。

总结

到此这篇关于MySQL数据库主从复制与读写分离的文章就介绍到这了,更多相关MySQL主从复制与读写分离内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
                                                        
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明
1. 本论坛所提供的信息均来自网络,本网站只提供平台服务,所有账号发表的言论与本网站无关。
2. 其他单位或个人在使用、转载或引用本文时,必须事先获得该帖子作者和本人的同意。
3. 本帖部分内容转载自其他媒体,但并不代表本人赞同其观点和对其真实性负责。
4. 如有侵权,请立即联系,本网站将及时删除相关内容。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表