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