前言:
现在干的项目里,核心数据增速较快,云数据库按数据体积收费,因此需要降低成本,尝试压缩数据体积。
正文:
最权威的东西出自官方文档:
https://dev.mysql.com/doc/refman/8.0/en/innodb-compression.html
表压缩
创建压缩表:
1 mysql> CREATE TABLESPACE `ts2` ADD DATAFILE 'ts2.ibd' FILE_BLOCK_SIZE = 8192 Engine=InnoDB; 2 3 mysql> CREATE TABLE t4 (c1 INT PRIMARY KEY) TABLESPACE ts2 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
指定ROW_FORMAT=COMPRESSED,可以省略KEY_BLOCK_SIZE, 它默认是innodb_page_size的一半。
什么场景使用压缩:
表中有很多字符串的列,并且数据的读取要远多于写。
最终是否决定使用压缩,最好的方式技术进行试验。
官网提供的一个测试脚本地址:
https://dev.mysql.com/doc/refman/8.0/en/innodb-compression-tuning.html
一点点的都的文档,主要的思路记录下来。剩下的具体的工作,就是按照文档一点点尝试,比较结果。