mysql blob 压缩_mysql压缩解决方案<一>

提到mysql压缩相关的内容,我们能想到的可能是如下几种和压缩相关的场景:

1、客户端和服务器之间传输的数据量太大,需要进行压缩,节约带宽

2、mysql某个列的数据量大,只针对某个列的数据压缩

3、mysql某个或者某几个表数据太多,需要将表数据压缩存放,减少磁盘空间的占用

这几个问题在mysql侧都有很好的解决方案 ,针对第1个问题,可以使用mysql的压缩协议解决;针对第2个问题,可以采用mysql的压缩和解压函数完美解决;而针对最复杂的第3个问题,则可以在引擎层面进行解决,目前myisam、innodb、tokudb、MyRocks等引擎都支持表的压缩。本篇文章要详细讨论的就是此类关于mysql压缩机制相关 的问题,下面是主要的内容:

一、mysql压缩协议介绍

1、适用场景

mysql压缩协议适合的场景是mysql的服务器端和客户端之间传输的数据量很大,或者可用带宽不高的情况,典型的场景有如下两个:

a、查询大量的数据,带宽不够(比如导出数据的时候)

b、复制的时候binlog量太大,启用slave_compressed_protocol参数进行日志压缩复制

2、压缩协议简介

压缩协议是mysql通信协议的一部分,要启用压缩协议进行数据传输,需要mysql服务器端和客户端都支持zlib算法。启动压缩协议会导致CPU负载略微上升。使用启用压缩协议使用-C参数或者 --compress=true参数启动客户端的压缩功能。如果启用了-C或者compress=true选项,那么在连接到服务器段的时候,会发送0x0020(CLIENT_COMPRESS)的服务器权能标志位,和服务器端协商通过后(3次握手以后),就支持压缩协议了。由于采用压缩,数据包的格式会发生变化,具体的变化如下:

未压缩的数据包格式:

http%3A%2F%2Fupload-images.jianshu.io%2Fupload_images%2F5847011-6c447e1d71cc3838.png%3FimageMogr2%2Fauto-orient%2Fstrip%257CimageView2%2F2%2Fw%2F1240

压缩后的数据包格式:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值