- 文档首页
云数据库 MySQL 版
内核功能
稳定性
异步删除大表
异步删除大表
本文介绍如何使用云数据库 MySQL 版的异步删除大表功能。
背景
当某张表的数据文件很大时,如果采取同步的操作的方式删除表,会对实例运行带来一定影响,使 IO 发生抖动。
功能介绍
云数据库 MySQL 版支持异步删除大表。开启异步删除大表功能后,删除大表的操作会由内核自动异步完成,降低删除大表操作对实例性能产生的波动。用户在删除表后也无需进行其他操作,剩余工作由内核自动完成。异步删除大表时,会先把表的数据文件重命名为临时文件,然后后台线程平缓地 truncate 掉临时文件。
适用场景
该功能适用于需要删除大表,且对性能波动比较敏感的业务场景。
支持版本
- MySQL 5.7 版本,内核小版本为 MySQL 5.7.32_20241015 及以上。
- MySQL 8.0 版本,内核小版本为 MySQL 8.0.32_20240215 及以上。
- MySQL 8.4 版本,内核小版本为 MySQL 8.4.7_20260415 及以上。
使用说明
异步删除大表功能默认关闭。可通过设置可修改参数 loose_innodb_data_file_logic_drop 和 loose_innodb_data_file_logic_drop_max_size 即可使用此功能。
- 修改 loose_innodb_data_file_logic_drop 为 ON 可开启此功能。
- 修改loose_innodb_data_file_logic_drop_max_size 可用于指定异步删除大表时在后台每次 truncate 文件的大小。
说明
云数据库 MySQL 版后台 truncate 的频率为 5 次/秒。如配置 loose_innodb_data_file_logic_drop_max_size 为 1024 MiB,理论上每秒会 truncate 5 GiB 数据文件。
关于 loose_innodb_data_file_logic_drop 和 loose_innodb_data_file_logic_drop_max_size 的更多信息,请参见下表。
操作步骤
通过设置可修改参数 loose_innodb_data_file_logic_drop 和 loose_innodb_data_file_logic_drop_max_size 即可使用此功能。云数据库 MySQL 版支持通过控制台和 Open API 两种方式修改参数。
最近更新时间:2026.05.28 11:52:20