技术分享 | MySQL binlog 压缩功能对性能的影响
作者:蒋乐兴
MySQL DBA,擅长 python 和 SQL,目前维护着 github 的两个开源项目:mysqltools 、dbmc 以及独立博客:https://www.sqlpy.com。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
概要
8.0.19 场景
dbma-cli-single-instance --port=3306 --max-mem=131072 \--pkg=mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz install
第二步:创建测试用户。
create user sysbench@'%' identified by 'sysbench';create database tempdb;grant all on tempdb.* to sysbench@'%';
第三步:填充数据并进行压力测试。
sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_read_select preparesysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_read_select run
8.0.20 + binlog 压缩
dbma-cli-single-instance --port=3306 --max-mem=131072 \--pkg=mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz install
第二步:创建测试用户。
create user sysbench@'%' identified by 'sysbench';create database tempdb;grant all on tempdb.* to sysbench@'%';-- dbm-agent 默认会开启 binlog 压缩show global variables like 'binlog_transaction_compression%';+-------------------------------------------+-------+| Variable_name | Value |+-------------------------------------------+-------+| binlog_transaction_compression | ON || binlog_transaction_compression_level_zstd | 3 |+-------------------------------------------+-------+2 rows in set (0.00 sec)
第三步:填充数据并进行压力测试。
sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_point_select preparesysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_read_select run
set @@global.binlog_transaction_compression='OFF';show global variables like 'binlog_transaction_compression%';+-------------------------------------------+-------+| Variable_name | Value |+-------------------------------------------+-------+| binlog_transaction_compression | OFF || binlog_transaction_compression_level_zstd | 3 |+-------------------------------------------+-------+2 rows in set (0.01 sec)
第二步:进行压力测试。
sysbench --mysql-host=192.168.100.10 --mysql-port=3306 --mysql-user=sysbench \--mysql-password=sysbench --tables=120 --table_size=100000 --mysql-db=tempdb \--time=3600 --threads=240 oltp_read_select run
结论
社区近期动态
点一下“阅读原文”了解更多资讯
本文分享自微信公众号 - 爱可生开源社区(ActiontechOSS)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。