实例解读:MySQL并行复制如何解决特定的主从问题?
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,并行复制存世已多年,但是在实际应用场景中的使用并不常见。这次很幸运,我们刚好遇到一个客户,主的写入工作量非常大,但是从难以跟上,在这种情况下,我建议它使用并行从属线程。那么,如何衡量并行复制是否在客户
千家信息网最后更新 2026年11月03日实例解读:MySQL并行复制如何解决特定的主从问题?
并行复制存世已多年,但是在实际应用场景中的使用并不常见。这次很幸运,我们刚好遇到一个客户,主的写入工作量非常大,但是从难以跟上,在这种情况下,我建议它使用并行从属线程。
那么,如何衡量并行复制是否在客户的场景中发挥了作用?对于客户业务能够带来多大的帮助?下面我们就一起来看看吧!
在客户业务场景中, slave_parallel_workers 是0,很明显我应该去增大,但增大的幅度是多少呢?1还是10,这个问题我们会在另一篇文章中解释,先说一下本文的场景中,我们将slave_parallel_workers 调整到了40。
同时,我们对slave还做了以下更改:
slave_parallel_type = LOGICAL_CLOCK;slave_parallel_workers = 40;slave_preserve_commit_order = ON;
40个线程听起来是很多,但是这是取决于特定的工作负载的,如果事务是独立的,那么它就可能派上用场。
接下来,我们再来看看哪些线程在工作:
mysql> SELECT performance_schema.events_transactions_summary_by_thread_by_event_name.THREAD_ID AS THREAD_ID, performance_schema.events_transactions_summary_by_thread_by_event_name.COUNT_STAR AS COUNT_STARFROM performance_schema.events_transactions_summary_by_thread_by_event_nameWHERE performance_schema.events_transactions_summary_by_thread_by_event_name.THREAD_ID IN(SELECT performance_schema.replication_applier_status_by_worker.THREAD_IDFROM performance_schema.replication_applier_status_by_worker);+-----------+------------+| THREAD_ID | COUNT_STAR |+-----------+------------+| 25882 | 442481 || 25883 | 433200 || 25884 | 426460 || 25885 | 419772 || 25886 | 413751 || 25887 | 407511 || 25888 | 401592 || 25889 | 395169 || 25890 | 388861 || 25891 | 380657 || 25892 | 371923 || 25893 | 362482 || 25894 | 351601 || 25895 | 339282 || 25896 | 325148 || 25897 | 310051 || 25898 | 292187 || 25899 | 272990 || 25900 | 252843 || 25901 | 232424 |+-----------+------------+
从上述代码中,我们可以看到哪些线程是在工作,但是这些线程真的加速复制了吗?Slave能在同一时间内写出更多的东西吗?
先来看一下 replication lag:

我们可以看大lag很快就降下来了,这是因为线程数增加了吗?还是因为生成多个插件的作业完成了,没有更多的写入了?(复制延迟没有达到0,因为这个Slave故意拖延了一个小时。)
幸运的是,在PMM中我们还有其他图表可以看,例如显示InnoDB Row操作:
Slave插入了比之前更多的行,那实际插入了多少行呢?下面我们创建一个新的图表来查看
每小时插入了多少行。在PMM中,我们已经拥有了所有这些信息,只需要使用下面的查询创建一个新的图表:
increase(mysql_global_status_innodb_row_ops_total{instance="$host",operation!="read"}[1h])结果显示:

从图中我们可以看到每小时插入行数大幅增加,从每小时约50Mil到200-400Mil。我们可以得出结论,增加slave_parallel_workers数量确实有帮助。
线程
场景
客户
小时
工作
图表
更多
幸运
业务
实际
是在
还是
这是
帮助
问题
明显
接下来
东西
事务
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手冲咖啡和咖啡机区别
互联网科技
什么是科技互联网
中智农互联网科技
互联网科技工作委员会副主任毛军
科技赋能下的互联网金融
互联网科技财经
疫情对互联网科技公司影响
互联网扶贫科技
喔噻互联网科技
西安互联网科技
互联网养老 桔豆科技
科技大学互联网专业好不好
老年人脱离互联网科技的作文
互联网和高科技公司
中国互联网有什么科技含量
苏州五指互联网络科技有限
科技大学互联网
恒生互联网科技业指数调整周期
安徽零酒互联网科技有限公司
互联网金融科技
科技股互联网
腾讯阿里互联网科技
金融科技与互联网金融
银优互联网科技有限公司
时间互联网络科技
互联网巨头投资的硬核科技
福建科技产业互联网发展
无锡工业互联网科技有限公司
上海科技产业互联网平台