千家信息网

如何进行MySQL并行复制测试

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天就跟大家聊聊有关如何进行MySQL并行复制测试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。对于主从延迟,其实一直以来就是一个颇有争议的话
千家信息网最后更新 2026年11月01日如何进行MySQL并行复制测试

今天就跟大家聊聊有关如何进行MySQL并行复制测试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

对于主从延迟,其实一直以来就是一个颇有争议的话题,在MySQL阵营中,如果容忍一定的延迟的场景,通过主从来达到读写分离是个很不错的方案,但是延迟率到底有多高可以接受,新版本中的并行复制效果怎么样,在不同的版本中是否有改变,我们能否找到一些参考的数据来佐证,这一点上我们可以通过一些小测试来说明。

首先来为了基本按照同一个参考标准,我们就在同一台服务器上安装了5.6,5.7的MySQL服务,另外一台服务器上搭建了从库。

数据库版本为5.6.23 Percona分支, 5.7.17 MySQL官方版本

服务器上安装了pt工具用来检测主从延迟,安装了新版本的sysbench来做加压测试。

主库: 10.127.128.227 RHEL6U3 32G R710
从库: 10.127.128.78 RHEL6U3 32G R710 为了基本能够达到同一个基准啦进行测试,我先启动5.6的数据库服务,测试完毕,启动5.7的服务。避免多实例的并行干扰。

初始化数据采用了类似下面的脚本,5.6, 5.7版本中都差不多。

创建了10个表,然后插入了500万数据来测试。

sysbench /home/sysbench/sysbench-1.0.3/src/lua/oltp_read_write.lua --mysql-user=root --mysql-port=3308 --mysql-socket=/home/mysql_5.7.17/mysql.sock --mysql-host=localhost --mysql-db=sysbenchtest --tables=10 --table-size=5000000 --threads=50 prepare

加压测试使用如下的sysbench脚本,持续时间300秒sysbench /home/sysbench/sysbench-1.0.3/src/lua/oltp_read_write.lua --mysql-user=root --mysql-port=3308 --mysql-socket=/home/mysql_5.7.17/mysql.sock --mysql-host=localhost --mysql-db=sysbenchtest --tables=10 --table-size=5000000 --threads=50 --report-interval=5 --time=300 run查看主从延迟,使用pt-heartbeat来完成。

开启后台任务:

pt-heartbeat h='10.127.128.78',u='pt_checksum',p='pt_checksum',P=3307 -D sysbenchtest --create-table --interval=1 --update --replace --daemonize开启主从延迟检测:

pt-heartbeat h='10.127.128.78',u='pt_checksum',p='pt_checksum',P=3308 -D sysbenchtest --table=heartbeat --monitor --master-server-id=3308 --frames=5s --interval=5
因为主从复制在5.6, 5.7还是存在一定的差别,我们就分别测试单线程和多线程复制的差别和改进点。

并行复制的基本配置

5.6 开启并行复制

mysql>stop slave;
mysql>set global slave_parallel_workers=8;
mysql>start slave;

5.7 开启并行复制

其中值得一提的是5.7做了一些改进,slave-parallel-type= DATABASE /LOGICAL_CLOCK
-- DATABASE -- 基于库级别的并行复制 与5.6相同
-- LOGICAL_CLOCK -- 逻辑时钟,主上怎么并行执行的,从上也是怎么并行回放的。所以我们开启了logical_clock.

mysql> stop slave;
mysql> set global slave_parallel_type='LOGICAL_CLOCK';
mysql> set global slave_parallel_workers=8;
mysql> stop slave;

并行复制的效果对比图

以下是得到的一个概览图,横轴是测试时间,纵轴是延迟时间。

总体来看,MySQL 5.6中的并行复制效率提升不够明显,5.7中的提升效果非常显著。

看完上述内容,你们对如何进行MySQL并行复制测试有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

测试 延迟 主从 服务 数据 版本 内容 效果 时间 服务器 差别 数据库 线程 脚本 参考 检测 不同 不错 明显 显著 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 美国互联网科技巨头监管 互联网与科技发展 有木互联网科技 互联网金融和金融科技 哈尔滨新华互联网科技 深圳互联网科技怎么样 互联网对科技的发展 南平创想时代互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 互联网科技如何创业 互联网金融科技公司的优势 互联网科技实习生岗位 杭州披云加互联网科技有限公司 城市宝互联网科技有限公司 下一代互联网重大应用科技园 互联网科技包装股份有限公司上市 互联网领先科技活动 米泉互联网科技专业怎么样 深圳互联网科技园地址 云之行互联网科技 金融科技还是互联网 科技制造互联网公司 亿人帮互联网科技 农村开互联网科技讲堂 厦门比较好的科技互联网公司 武汉健翔互联网络科技有限公司 企晟互联网信息科技有限公司 特约风豹互联网科技为什么扣费 互联网数据科技专业
0