MySQL5.6 开启表压缩
MySQL5.6 开启表压缩,需要确保实例有如下配置:
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_file_format=Barracuda;
在创建表的时候,指定 ROW_FORMAT=COMPRESSED
,即可。如果是针对现有表结构进行压缩,建议进行表复制,在副本表上执行相关的修改,查看具体的压缩效果。
注意,这里的表压缩,压缩维度是页,而不是行、列。参考 MySQL实战宝典 表结构设计篇 06 表压缩:不仅仅是空间压缩
将 Innodb 转为 ARCHIVE
ARCHIVE
引擎的表不支持索引、主键、外键,更多限制参考 mysql-5.6 archive-storage-engine。
使用 show engines
查看 mysql 引擎支持。
ARCHIVE
的压缩率一般要好于开启 COMPRESSED
的 Innodb
。
例如:一个 2.4G 开启 COMPRESSED
的 Innodb
的表,去掉索引和主键再修改为 ARCHIVE
,其大小变为 300 MB 左右,压缩近 8 倍。