MySQL可以通过optimize table命令释放表空间,重组表数据和索引的物理页,减少所占空间和优化读写性能。

如果使用delete命令删除数据库,表空间不会直接回收,您可以用optimize table释放表空间。

注意事项

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

通过命令行操作

  1. 使用通用客户端连接MySQL数据库,本文以MySQL-Front为例进行演示。
  2. 在右侧选择SQL编辑器页签。
  3. 在命令行中执行如下命令释放表空间:
    optimize table <数据库名1>.<表名1>,<数据库名2>.<表名2>

    mysql-front

通过DMS操作

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