mysql 表压缩
mysql中经常出现历史表,这些表不会进行修改数据的操作,只有读操作。那么我们可以对其进行压缩处理,缩减磁盘空间。Innodb表和MyISAM表的压缩指令不一样。下面分别来讨论:
一、InnoDB表
参考文章:http://blog.csdn.net/linghaowoneng/article/details/51491800。
简而言之就一下几点:
1、确保开启参数innodb_file_per_table=1;以及设置
innodb_file_format
=Barracuda。
2、更改表属性:
alter table table_name ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
3、压缩前后对比图
压缩前
压缩后
查询效率基本没有变化。这里没有保存前后的图片
二、MyISAM表压缩
MyISAM的压缩用到的是myisampack指令。
数据文件大小为336M,索引大小为137M。开始压缩
能够发现数据文件和索引文件都表小了。
压缩后需要检查表
注意:压缩表之后InnoDB仍可以进行插入操作,但是有一定风险;MyISAM不可以插入,会报错。所以建议压缩有都不进行插入操作