官方文档对该参数的解释
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有什么影响还没弄清楚。