1.MySQL数据库主从同步原理
主服务器有一个工作线程 io dump thread
从服务器有两个工作线程,一个是io thread,一个sql thread。
复制如何工作
主从同步简单可以分为三步
(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2) slave将master的binary log events拷贝到它的中继日志(relay log);
(3) slave重做中继日志中的事件,同步数据
2.MySQL数据库主从同步延迟是怎么产生的。
答:当主库的TPS并发较高时,产生的DDL数量超过slave一个sql线程所能承受的范围,那么延时就产生了,当然还有就是可能与slave的大型query语句产生了锁等待。
主要分为以下5点吧
1. 首先就是主库可以并发写入,从库只能通过单sql thread完成任务(MySQL5.7之前)
2. MySQL主从之间的同步,本来就不是时时同步的,是异步的同步,也就是说,主库提交事务之后,从库才再来执行一遍。
3. 在主库上对没有索引大表的列进行delete或者update的操作
4. 从库的硬件配置没有主库的好,经常忽略从库的重要性
5. 网络问题
3.解决方法
1.mysql5.7版本可以使用并行复制
2.PXC架构
3.业务初期合理的规划和分库分表。业务层也可以尽量避免先写再读
4.增加硬件,适当调整 buffer pool 的大小
网友评论