主从同步延迟可以通过一些策略减少,从而减低对业务的影响
避免大事务和长事务
大事务和长事务会严重影响主从同步的效率,例如大规模的DELETE操作会生成大量的binlog,导致从库复制速度跟不上。
解决:通过分批操作缓解,例如一次1000条,减少每次操作的时间,减少对主从同步的影响。
启用从库的并行复制
mysql5.7就支持基于writeset的并行复制,从库可以同时处理多个事务,从而提高复制效率
从库的my.cnf文件配置
slave-parallel-type=LOGICAL_CLOCK slave-parallel-workers=4
此外,主库的sync_binlog_delay_ms参数也可以适当调大这样主库生成的binlog可以更好地利用从库的并行复制能力,但也不能太大影响主库性能。
sync_binlog_delay_ms=10
一主一备多从的架构
避免让一台机器负载过大,采用一主一备多从的架构,将读写压力分散到多个从库上,降低单台从库的负载,提高整体系统的可用性和性能
主从对称部署:确保主从服务配置相同,避免因为硬件差异导致的性能瓶颈;(主库比从库配置高很多导致,在数据库同步迁移时候很慢)
业务层面优化:技术上的优化只能减少延迟,真正避免因为延迟带来的业务问题,需要在业务层面进行调整。例如,对于自己读数据从从库读取,而其他用户则从主库,这样既能保持数据的实时性,也能有效利用从库的读写分离优势。
标签:主库,binlog,同步,并行复制,时延,Mysql,从库,主从 From: https://www.cnblogs.com/cgy-home/p/18316211