- 主库DML请求,即插入删除修改语句比较频繁的情况
- 主库大量写请求带来了大量的binlog日志,容易造成relaylog堆积,同步日志以及执行relaylog时速度跟不上造成延迟
- 解决方案:采用基于逻辑时钟的并行复制
- 主库执行大事务,事务提交耗时比较长
- 如对很大的表进行全表update或者delete操作,如速度很慢的导入数据语句等
- 从库再执行该大事务,又要耗时间,因此造成主从延时
- 解决方案:将大事务分解为若干个小事务语句,及时提交
- 对大表执行DDL语句修改表结构,其原因和大事务类似
- DDL延时难以避免,尽量在业务低峰期执行
- 主从库配置不一样
- 硬件资源不一样
- 配置方式不一样
- 解决方案:统一配置
- 表缺乏合适的索引和主键:
- 查询的时候可能会因为缺乏合适的索引而进行全表扫描,或者很多扫描,导致从库回放语句较慢,造成主从延迟
- 解决方案:设置合适索引
- 从库自身压力过大:
- 当很多读请求走从库时,从库负载会比主库还大,会造成主从延迟
- 解决:设置多个从库进行负载均衡,打散读请求
