前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL binlog compression 来自MYSQL 8.020的声音

MYSQL binlog compression 来自MYSQL 8.020的声音

作者头像
AustinDatabases
发布2021-04-22 16:38:08
5370
发布2021-04-22 16:38:08
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

MYSQL 的新版本一直不断的发,其实这样有一个问题,到底我们要选择哪个版本的8 ,不断的升级导致“贪心不足” 的人们,总是在等待一个更好的版本,而还在继续使用5.X ,另外一个原因是MYSQL 5.x 一堆的工具,如果换到8 ,则不少的作废了。所以 MYSQL 8 使用的 cyber or internet 的公司不多。当然另外一个原因是,一个系统上线后,想要升级数据库系统,那也是不容易的事情,

每个数据库都会面对一个重要解决的问题,磁盘的性能,其实数据库不少的优化和想法以及设计都是针对 磁盘的I/0, cache buffer 预读, 其实数据库的技术和原理部分都是基于硬件的原理,而硬件的变化也会影响数据库的发展。

那么mysql 8.020 对于MYSQL的BINLOG 一个消耗磁盘的性能的killer, 做出了改变,原理就是压缩。

这个改变在MYSQL 的8.020这个版本,降低磁盘的占用和写入的量对数据库是一个永恒的话题。

下面的话题就的从这几个参数来了。

默认binlog 的 binlog_transaction_compression 是关闭的, 这两个参数属于全局参数,是无法在系统运行中事务通过session级别来进行设置的。

但可以在session 中进行设置

压缩并不是对类似gtid 信息, 非事务的基于行的信息进行压缩.

压缩的方法是通过zstd逻辑的方式进行,将日志进行压缩,通过压缩事务将日志通过流的方式传送给复制端,或者组复制的成员或者mysqlbinlog 这样的程序等等.在这个过程中并不会对信息进行解压缩,二进制日志事务压缩因此既节省了事务发起者的存储空间,也节省了事务接收者(及其备份)的存储空间,还节省了事务在服务器实例之间发送时的网络带宽。

当对其中的事务的时间进行重放的时候,会将这些信息解压缩,或者在使用mysqlbinlog ,show binlog events show relaylog events 等命令的时候会对他们进行解压.

binlog_transaction_compression_level_zstd系统变量,用于设置用于压缩的zstd算法的级别。值对于压缩工作量进行控制,从1到22,随着压缩级别的增加,压缩比也会增加,来减少事务有效负载需要的存储空间以及网络带宽。

select * from performance_schema.binary_log_transaction_compression_stats\G

在打开相关功能后, 并且在打开事务后有相关的事务运行后binary_log_transaction_compression 才有相关的信息.

另外在performance_schema 中对于相关的压缩的也有相关的监控

performance-schema-instrument = "stage/sql/%Compressing transaction changes.=ON"

performance-schema-consumer-events-stages-current = ON

上图是一个对binlog 进行压缩和不进行压缩,以及通过最终压缩的方式相关对比,可以看到通过这个功能进行压缩与原有的不压缩对于存储的尺寸有较大的不同.

从压缩的比率来看,通过MYSQL进行BINLOG 压缩.要比通过外部的压缩方法,损耗的CPU 等要低的多.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档