MySQL的slave_compressed_protocol参数

本文探讨了MySQL中slave_compressed_protocol参数的作用,即在主从复制过程中启用压缩协议以减轻网络负担。实测表明,该参数能有效降低网络压力,但会轻微增加CPU负载。然而,在MySQL 5.7.21版本中,该参数可能会引发未知影响的BUG。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方文档对该参数的解释

Whether to use compression of the slave/master protocol if both the slave and the master support it. Changes to this variable take effect on subsequent connection attempts; this includes after issuing a START SLAVE statement, as well as reconnections made by a running I/O thread (for example after issuing a CHANGE MASTER TO MASTER_RETRY_COUNT statement).

大概意思为:当主库和从库都开启该参数时则启用压缩协议。修改该参数后,会对之后的连接生效,包括执行start slave之后,以及IO线程的重新连接。

BUG测试

已知BUG:https://bugs.mysql.com/bug.php?id=85382

MySQL版本:5.7.21
1、主从开启半同步复制
2、主从动态设置slave_compressed_protocol参数
3、此时bug未出现,因为该参数是对修改后的连接生效
4、从库重新建立连接,stop slave; start slave;

master:
在这里插入图片描述
slave:
在这里插入图片描述

性能测试

采用异步复制的模式进行测试,测试工具选用sysbench。

主库CPU和网络(前面的是没有开启slave_compressed_protocol参数,后面的是开启后的):
在这里插入图片描述
在这里插入图片描述
从库CPU和网络:
在这里插入图片描述
在这里插入图片描述

结论:

1、开启slave_compressed_protocol参数可以降低一些主从网络压力。
2、开启该参数会对CPU负载产生影响,但CPU负载提升并不明显。
3、MySQL5.7.21版本开启该参数后会触发BUG,但这个BUG有什么影响还没弄清楚。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值