案例 [1] #
案例一:主库DML请求频繁 #
- 解决思路
- 如果是MySQL 5.7以下的版本,可以做分片(sharding),通过水平扩展(scale out)的方法打散写请求,提升写请求写入binlog的并行度。
- MySQL 5.7以上的版本,
- 在MySQL 5.7,使用了基于逻辑时钟(Group Commit)的并行复制。
- 而在MySQL 8.0,使用了基于Write Set的并行复制。
案例二:主库执行大事务 #
- 解决思路 拆分大事务语句到若干小事务中,这样能够进行及时提交,减小主从复制延时。
案例三:主库对大表执行DDL语句 #
- 解决思路
- 避免业务高峰,尽量安排在业务低峰期执行 ;
- set sql_log_bin=0后,分别在主从库上手动执行DDL(此操作对于某些DDL操作会造成数据不一致,请务必严格测试)
参考 #
- 高可用数据库主从复制延时的解决方案
- 《26 | 备库为什么会延迟好几个小时?》 未