Mysql的主从同步时延问题

主从同步延迟可以通过一些策略减少,从而减低对业务的影响

避免大事务和长事务

大事务和长事务会严重影响主从同步的效率,例如大规模的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

一主一备多从的架构

避免让一台机器负载过大,采用一主一备多从的架构,将读写压力分散到多个从库上,降低单台从库的负载,提高整体系统的可用性和性能

主从对称部署:确保主从服务配置相同,避免因为硬件差异导致的性能瓶颈;(主库比从库配置高很多导致,在数据库同步迁移时候很慢)

业务层面优化:技术上的优化只能减少延迟,真正避免因为延迟带来的业务问题,需要在业务层面进行调整。例如,对于自己读数据从从库读取,而其他用户则从主库,这样既能保持数据的实时性,也能有效利用从库的读写分离优势。

 

posted @ 2024-07-22 16:04  白玉神驹  阅读(87)  评论(0)    收藏  举报