回收碎片空间
本文介绍如何通过提交无锁结构变更工单回收碎片空间。
使用场景
释放磁盘空间
提高数据库性能
前提条件
背景信息
在数据库频繁执行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 '修改后的字段注释';
操作步骤
- 登录数据管理DMS 5.0。
在顶部菜单栏中,选择数据库开发 > 数据变更 > 无锁变更。
说明若您使用的是极简模式的控制台,请单击左上角的
,选择全部功能 < 数据库开发 < 数据变更 < 无锁变更。
您也可以在开启实例的无锁结构变更后,提交普通数据变更工单回收碎片空间。具体操作,请参见普通数据变更。
配置无锁变更工单的具体操作,请参见通过无锁变更工单实现无锁结构变更。
说明DBA和管理员还可以通过新增SQL任务,变更表结构。具体操作,请参见任务管理。