MySQL slave_compressed_protocol 压缩率测试

2023年 8月 15日 86.7k 0

slave_compressed_protocol 参数用于控制MySQL主从复制是否使用压缩协议,基于ROW格式的binlog,其数据量一直是一个比较大的问题,开启binlog复制压缩对于缓解binlog数据量大导致的网络带宽问题有一定的帮助,那么开启slave_compressed_protocol参数后,网络传输的binlog压缩效果如何?对其他性能是否会产生影响?本文通过实验进行验证。

1、测试环境:
  • 16核32G虚拟机
  • MySQL版本:5.7.19
  • 1主1从,异步复制
2、测试结果:
主库cpu 从库cpu 主库send 主库recv 从库send 从库recv
未压缩 22% 20% 6.18MB/s 3.49MB/s 108KB/s 5.38MB/s
压缩 22% 20% 3.64MB/s 3.52MB/s 88.5KB/s 2.65MB/s

注:
开启或者关闭slave_compressed_protocol参数,需要重启复制,让该参数生效。

3、结论
  1. 开启slave_compressed_protocol参数,压缩效果明显,网络数据传输量约为未开启一半,压缩率50%。
  2. 开启slave_compressed_protocol参数,主从库cpu负载没有明显的增长。

注:
MySQL 5.7 和 8.0 的某些版本在slave_compressed_protocol=ON与半同步复制一起使用时,会触发Bug。具体见链接:

MySQL 5.7 Bug slave_compressed_protocol 与半同步复制同时开启,导致主库写入卡住

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论