回收碎片空间

本文介绍如何通过提交无锁结构变更工单回收碎片空间。

使用场景

  • 释放磁盘空间

  • 提高数据库性能

前提条件

背景信息

在数据库频繁执行UPDATE、DELETE语句后,容易产生碎片空间,即未被利用的空间。若不进行碎片回收,则无法再次利用此部分空间。您可主动回收碎片空间,提高数据库的性能和效率,减少存储成本。

注意事项

  • 只有开启了无锁结构变更的实例,系统才会在执行变更工单的同时,自动整理并回收碎片空间。

    说明

    提交无锁结构变更工单可有效解决结构变更时锁表的问题,同时,可以较好地规避因数据库变更导致锁表以阻塞业务的问题。

  • 若未开启实例的无锁结构变更,则需要在普通数据变更工单中输入用于整理、回收碎片空间的SQL语句。

    例如,通过普通数据变更工单修改表的注释或字段的注释,在变更工单中输入如下任一条用于整理、回收碎片空间的SQL:

    • ALTER TABLE table_name COMMENT '修改后的表的注释';

    • ALTER TABLE table_name COMMENT '修改后的表的注释';

    • ALTER TABLE table_name ENGINE=InnoDB;

    • OPTIMIZE TABLE table_name;

    • ALTER TABLE table_name MODIFY COLUMN field_name INT COMMENT '修改后的字段注释';

操作步骤

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择数据库开发 > 数据变更 > 无锁变更

    说明
    • 若您使用的是极简模式的控制台,请单击左上角的2022-10-21_15-25-22..png,选择全部功能 < 数据库开发 < 数据变更 < 无锁变更

    • 您也可以在开启实例的无锁结构变更后,提交普通数据变更工单回收碎片空间。具体操作,请参见普通数据变更

  3. 配置无锁变更工单的具体操作,请参见通过无锁变更工单实现无锁结构变更

    说明

    DBA和管理员还可以通过新增SQL任务,变更表结构。具体操作,请参见任务管理

阿里云首页 数据管理 相关技术圈