一图说服你MySQL的表可一步到位放心使用行格式为COMPRESSED
概要
MySQL的表结构定义为行格式 ROW_FORMAT=COMPRESSED 的理由充足
最近在为阿里云的数据库满了的问题而烦恼,删除了一些无用的表及删除一些日志表记录后研究了一下压缩表的问题,结果收获不大。改为研究表结构定义为行格式对表占用存储空间的影响及查询速度的影响的研究,用事实说话,实验过程做成以下图:
– 获取表占用存储空间
SELECT table_name, table_rows, DATA_LENGTH, INDEX_LENGTH,
ROUND((DATA_LENGTH+INDEX_LENGTH)/1048576,1) AS size_mb, DATA_FREE, ROUND((DATA_FREE)/1048576,1) AS df_size_mb
FROM information_schema.tables
WHERE table_schema=‘数据库名’ AND table_type=‘base table’ AND table_name = ‘表名’;
上图看到,改行格式为 COMPRESSED 后,存储空间将会减少一半!即一个600多万行的大表,存储空间由 6G 变 2.8G
以上测试,有理由让我们相信,建表就用行格式为 COMPRESSED
原来如此,妙!高!实在是高!
总结:MySQL数据表建表可一步到位放心使用行格式为 COMPRESSED 的理由是存储空间减少一半,查询速度影响不大。