MySQL之TPC压缩

1.原理
mysql支持两种压缩模式:compressed和Transparent Page Compression【透明页压缩TPC 5.7】
  • 开启compressed
    CREATE TABLE t2 (c1 INT) row_format=compressed,key_block_size=8;
    alter table t2 row_format=compressed,key_block_size=8;

  • 开启TPC
    CREATE TABLE t1 (c1 INT) COMPRESSION=“zlib | lz4”;
    alter table t1 compression=“zlib | lz4”;
    optimzie table t1;

  • 禁用TPC
    alter table t1 compression=“none”;
    optimzie table t1;

zlib压缩比高但速度慢,测试5000w表需要30min

  • compressed 需要配合innodb_file_format = Barracuda 否则压缩无效(不会报错,只有警告信息)
  • compressed key_block_size只能指定为16的因数,如:4,8,16,默认是page_size的一半。数据的具体形式决定了压缩程度,通常会压缩50%以上。通过指定innodb_compression_level级别调整压缩比和cpu的开销(可调整到1~9,默认是6,级别越低压缩比越高CPU开销越大)
    对于具有列值较长的表,使用compressed压缩表格式往往更高效
  • TPC压缩利用文件系统‘打孔’技术,如果innodb_page_size = 16K,文件系统块大小为4K,则页面数据必须压缩到小于或等于12K才能进行‘打孔’
    TPC压缩需要linux文件系统支持 hole punching功能**(阿里云支持)**
2.测试

传统压缩:
传统压缩
TPC压缩:
TPC压缩

3.真实应用

真实应用表结构:
表结构
MySQL存储空间使用情况:
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值