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不可以插入,会报错。所以建议压缩有都不进行插入操作

原文地址:https://www.cnblogs.com/binbinyouni/p/6530839.html