mysql主从复制延迟需先确认真实存在:查seconds_behind_master并结合位点差或时间戳测试验证;再通过并行复制、拆分大事务、优化主从刷盘策略及网络io来降低延迟。
MySQL主从复制延迟的核心在于减少从库执行时间、降低主库写压力、优化网络与配置。不是所有延迟都需要“修复”,但持续超过几秒的延迟会影响读一致性、备份可靠性甚至高可用切换。
确认延迟真实存在且需处理
先排除误判:运行 SHOW SLAVE STATUS\G,重点看 Seconds_Behind_Master(注意它可能为 0 却仍有积压)。更准确的方式是结合 Master_Log_File/Read_Master_Log_Pos 和 Relay_Master_Log_File/Exec_Master_Log_Pos 计算 relay log 已读未执行的 binlog 位点差;也可在主库插入带时间戳的测试记录,再查从库何时查到——这才是真实同步耗时。
减少从库 SQL 线程瓶颈
单线程回放是传统 MySQL 主从的最大瓶颈,尤其在主库并发写入高时: