如何使用“optimize table”命令释放MySQL实例的表空间?
MySQL可以通过optimize table语句释放表空间,重组表数据和索引的物理页,减少表所占空间和优化读写性能。但是执行optimize table语句过程时,数据会复制到新建的临时表中,会增加实例的磁盘使用率。当实例剩余磁盘不足以容纳临时表时,建议先扩容磁盘空间,如何扩容请参见变更配置。
通过命令行操作
1、连接MySQL数据库,详情请参见连接MySQL数据库。
2、执行以下SQL语句,释放表空间。
optimize table [$Database1].[Table1],[$Database2].[Table2]
说明:
a、[$Database1]与[$Database2]为数据库名,[Table1]与[Table2]为表名。
b、在innodb引擎中执行optimize table语句时,会出现以下提示信息,该信息是正常执行返回的结果,您可忽略信息。确认返回“ok”即可。详情请参见OPTIMIZE TABLE Statement。
Table does not support optimize, doing recreate + analyze instead
通过DMS操作
1、登录MySQL数据库,详情请参见通过DMS登录MySQL数据库。
2、在左侧选择目标实例的实例ID,然后双击目标库,右键单击任意表名,然后选择批量操作表。
3、勾选需要释放空间的表名,然后依次选择表维护>优化表。
4、在弹出的对话框中确认变更信息正确,然后单击确认即可。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。