更新时间:2026-02-05 gmt 08:00

异步删除大表-j9九游会登录

功能介绍

该功能主要用于在删除包含大量数据的表时,实现平滑删除,以避免io的抖动。

开启该功能后,当通过drop table命令删除表时,系统会先将原数据库对应的.ibd文件重命名为一个新的临时文件,并立即返回操作成功的消息。系统随后会在后台分批次对该临时文件进行truncate处理,每次truncate的文件大小由innodb_rds_data_file_purge_max_size参数控制。

约束限制

  • 该功能仅支持rds for mysql 8.0.32及更高版本。
  • 由于删除操作变为异步处理,磁盘空间的释放将比功能启用前需要更长的时间。具体所需时间与表大小和单次truncate的文件大小、truncate周期相关。

参数介绍

表1 数据库参数

参数名称

是否需要重启

默认值

允许值

描述

innodb_rds_data_file_purge

off

on,off

是否启用后台异步清理大文件策略。

innodb_rds_data_file_purge_interval

100

0~10000

异步清理线程调度的周期,单位:ms。

innodb_rds_data_file_purge_max_size

32

16~1073741824

异步清理线程每个周期清理的文件大小,单位:mb。

使用如下命令删除表:

drop table table_name;

使用如下命令查看清理进度:

select * from information_schema.rds_innodb_purge_files;
 -------- --------------------- --------------------- --------------- --------------------- -------------- 
| log_id | start_time          | original_path       | original_size | temporary_path      | current_size |
 -------- --------------------- --------------------- --------------- --------------------- -------------- 
|     76 | 2025-11-11 21:20:19 | ./file_purge/t1.ibd |     146800640 | ./#fp_1762772250_9  |     46137344 |
表2 参数说明

参数

说明

start_time

清理操作的开始时间。

original_path

表数据文件的原始路径。

original_size

表数据文件的原始大小,单位:byte。

temporary_path

清理中的临时文件路径。

current_size

待清理的剩余临时文件大小,单位:byte。

相关文档

网站地图