概述

本文主要介绍如何释放MySQL实例的表空间。

 

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

MySQL可以通过optimize table命令释放表空间,重组表数据和索引的物理页,减少所占空间和优化读写性能。如果使用delete命令删除数据库,表空间不会直接回收,您可以用optimize table释放表空间。

 

注意事项

  • 操作将会锁表,建议在业务低峰期操作。
  • 仅Innodb和MyISAM引擎支持optimize table命令。

 

通过命令行操作

  1. 使用通用客户端连接MySQL数据库,本文以MySQL-Front为例进行演示。
  2. 在右侧选择SQL编辑器页签。
  3. 在命令行中执行如下SQL语句释放表空间。
    optimize table [$Database1].[Table1],[$Database2].[Table2]
    注:[$Database1]与[$Database2]为数据库名,[Table1]与[Table2]为表名。
    系统显示类似如下。
    mysql-front

 

通过DMS操作

  1. 通过DMS登录MySQL数据库
  2. 在左侧选择数据库,在任意表上单击鼠标右键,单击 批量操作表 > 更多批量操作
    DMS选择批量操作
  3. 在弹出的批量操作表中勾选需要释放空间的表,单击 表维护 > 优化表
    DMS批量优化表
  4. 在弹出的对话框中单击 Yes

 

适用于

  • 云数据库 RDS MySQL 版