最佳实践—如何异步删除大表

简介: 本文介绍了异步删除大表的方法。

背景信息

PolarDB-X底层存储节点,默认使用InnoDB引擎时,直接删除大表后会触发表文件的删除,导致POSIX文件系统出现严重的稳定性问题,因此InnoDB会启动一个后台线程来异步清理数据文件。当删除单个表空间时,会将对应的数据文件先重命名为临时文件,然后清除线程将异步、缓慢地清理文件。


说明 提供清除文件日志来保证DDL语句的原子性。

操作步骤

  1. 使用如下命令查看实例全局变量设置:
SHOW GLOBAL VARIABLES LIKE '%data_file_purge%';
  1. 返回结果如下:
+----------------------------------------+-------+

| Variable_name | Value |
+----------------------------------------+-------+
| innodb_data_file_purge | ON |
| innodb_data_file_purge_all_at_shutdown | OFF |
| innodb_data_file_purge_dir | |
| innodb_data_file_purge_immediate | OFF |
| innodb_data_file_purge_interval | 100 |
| innodb_data_file_purge_max_size | 128 |
| innodb_print_data_file_purge_process | OFF |
+----------------------------------------+-------+
  1. 参数说明如下:
参数 说明
innodb_data_file_purge 是否启用异步清除策略。
innodb_data_file_purge_all_at_shutdown 正常关机时全部清理。
innodb_data_file_purge_dir 临时文件目录。
innodb_data_file_purge_immediate 取消数据文件的链接但不清理。
innodb_data_file_purge_interval 清理时间间隔。单位:ms。
innodb_data_file_purge_max_size 每次清理单个文件大小的最大值。单位:MB。
innodb_print_data_file_purge_process 是否打印文件清理工作进程。
  1. 可以使用如下命令设置参数:
set global INNODB_DATA_FILE_PURGE = on;
set global INNODB_DATA_FILE_PURGE_INTERVAL = 100;
set global INNODB_DATA_FILE_PURGE_MAX_SIZE = 128;

  1. 说明 默认情况下PolarDB-X并不支持直接使用set global指令设置参数,建议在控制台上进行的存储层参数设置。
  2. 使用如下命令查看清理进度:
select * from information_schema.innodb_purge_files;
  1. 返回结果如下:
+--------+---------------------+--------------------+---------------+-------------------------+--------------+
| log_id | start_time | original_path | original_size | temporary_path | current_size |
+--------+---------------------+--------------------+---------------+-------------------------+--------------+
| 0 | 2021-05-14 14:40:01 | ./file_purge/t.ibd | 146800640 | ./#FP_210514 14:40:01_9 | 79691776 |
+--------+---------------------+--------------------+---------------+-------------------------+--------------+
  1. 参数说明如下:
参数 说明
start_time 清理操作的开始时间。
original_path 表数据文件的原始路径。
original_size 表数据文件的原始大小,单位:byte。
temporary_path 清理中的临时文件路径。
current_size 待清理的剩余临时文件大小,单位:byte。
相关文章
|
25天前
|
Web App开发 JSON 监控
零配置方案:Zabbix + HTTP 代理实现内网穿透工具的自动化管理
本文作者蔡斯,Zabbix社区签约专家,Zabbix 6.0/7.0官方译者。文章探讨如何利用Zabbix的HTTP代理与低级别发现(LLD)功能,实现对免费内网穿透工具的自动化监控,解决多账号、多设备管理难、服务状态盲区等痛点,打造零侵入、零配置、无限扩展的智能监控体系。
132 0
|
Java 开发者 C++
Java多线程同步大揭秘:synchronized与Lock的终极对决!
【6月更文挑战第20天】在Java多线程编程中,`synchronized`和`Lock`是两种关键的同步机制。`synchronized`作为内置关键字提供基础同步,简单但可能不够灵活;而`Lock`接口自Java 5引入,提供更复杂的控制和优化性能的选项。在低竞争场景下,`synchronized`性能可能更好,但在高并发或需要精细控制时,`Lock`(如`ReentrantLock`)更具优势。选择哪种取决于具体需求和场景,理解两者机制至关重要。
273 1
|
域名解析 网络协议 应用服务中间件
阿里云服务器公网IP怎么绑定域名?
阿里云服务器公网IP怎么绑定域名?
4009 0
阿里云服务器公网IP怎么绑定域名?
|
编解码 数据挖掘 网络架构
Google Earth Engine ——ERA5-Land Monthly Averaged by Hour of Day - ECMWF Climate Reanalysis数据集
Google Earth Engine ——ERA5-Land Monthly Averaged by Hour of Day - ECMWF Climate Reanalysis数据集
1863 0
Google Earth Engine ——ERA5-Land Monthly Averaged by Hour of Day - ECMWF Climate Reanalysis数据集
|
机器人 Java Docker
Docker + anoyi-blog 打造专属个人简书
写在前面   anoyi-blog,一款有趣的开源个人博客建站工具,简单梳理下分享给大家。该工具基于 Docker, 可快速搭建和一键生成个人博客,用于实时解析简书文章、作者信息,专为个性化而生! Docker命令 docker run -d --na...
1610 0
|
测试技术 Shell
LLVM每日谈之十 LLVM Test简介
作者:snsn1984 就像很多优秀的软件都有自己的测试框架一样,LLVM也有自己的测试框架。LLVM的测试主要分为两 部分:regression tests 和 whole programs。
1917 0