MySQL并行复制为何有时比单线程复制速度还慢?
摘要:最近碰到一个 case,发现在特定场景下,并行复制竟然比单线程复制要慢。 现象 从某个时间点开始,从库的复制延迟持续增加,且没有下降的趋势。 数据库版本:8.0.40,事务隔离级别 RC(Read Committed),并行重放线程数(re
最近碰到一个 case,发现在特定场景下,并行复制竟然比单线程复制要慢。
现象
从某个时间点开始,从库的复制延迟持续增加,且没有下降的趋势。
数据库版本:8.0.40,事务隔离级别 RC(Read Committed),并行重放线程数(replica_parallel_workers)为 8。
分析过程
通过show slave status\G查看,发现Relay_Master_Log_File和Exec_Master_Log_Pos都在变化,只不过变化得比较慢。
刚开始怀疑是主库写入量较大导致的,后来通过mysql-binlog-time-extractor(具体用法可参考:分享一个 MySQL binlog 分析小工具)分析,发现主库的写入量在刚开始出现延迟时(2025-09-01 09:30)并不大,反倒是写入量大的时间段(2025-09-01 04:57:53 - 2025-09-01 05:02:42)没有出现延迟。
