大家都知道异步的好处就是实现业务上的解耦,然后对业务进行针对性的操作,从而来提升执行的效率 。这里面线程的职责分别是获取与重放的单一职责处理 。同时也方便后面系统的管理 。
注:默认的主从方式为异步模式,后面出一篇详细的同步方式和复制常见问题解决 。尽请期待
假如,如果说从库只有一个工作I/O完成所有的复制工作,那么就会阻塞日志读取,在来进行重放,并且重放过程中,SQL语句执行时,还会进行语法、词法分析等 。这样就导致复制效率降低,从而引发延迟问题 。所以这也是为什么在这里要涉及业务分析的原因 。现在大家对你们的业务有优化的考虑吗? 欢迎留言讨论
但这种架构也限制了复制的过程,其中一点在主库上并发运行的操作在备库只能串行化执行 。因为只有一个SQL线程来重放中继日志 。在5.7以上有了多线程的模式 。
总结一下:MySQL主从可以解决单机性能、存储不足的问题,所以主从复制是通过扩容的思路来进行数据的分布,从而划分请求来抵御过大的用户请求 。对于从库实现的原理分为三大阶段,分别是记录日志、写入到中继日志、重放日志 。对于架构模式考虑上,也需要代入我们的业务场景中来做分析使用
大家如果有什么需求,也是可以留言的 。如有感悟,欢迎关注@php智慧与能力
大冬天的,作为暖男的我,也希望能够给大家温暖下去 。关注下,咳咳咳咳 。如果需要欠缺实战的同学可以购买专栏额 。
推荐阅读
- Mysql报too many connections详解
- Mysql访问中间件--Atlas初探
- Centos7 安装redis主从及配置哨兵模式
- Linux怎么复制文件到其他文件夹
- 我常用的免费MySQL图形化管理工具
- Linux安装JDK 以及 tomcat 和mysql
- MySQL-分布式架构-MyCAT
- MySQL中七个查询命令的优先级及特点
- 千万级MySQL数据库建立索引,提高性能的秘诀
- Docker下搭建Apache+PHP+Mysql