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

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

背景信息

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。
相关文章
|
关系型数据库 MySQL Linux
CentOS7环境下安装MySQL5.6
CentOS7环境下安装MySQL5.6
1266 0
|
缓存 算法 API
从 0 实现 API 接口签名验证系统:基于 HMAC-SHA256 的防篡改方案(附 Python 全代码)
本文介绍基于 的 API 接口签名验证系统,实现防篡改与防重放攻击,包含完整设计原理、签名生成规则及可运行的 Python 客户端与服务端代码,并提供安全性优化与部署建议。
|
弹性计算 负载均衡 网络协议
slb健康检查方法
slb健康检查方法
553 4
|
10月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.35.0F 发布 - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.35.0F 发布 - 针对云原生环境设计的容器化网络操作系统
340 0
|
安全 网络协议 网络安全
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题
35995 0
|
存储 SQL 关系型数据库
PolarDB架构
PolarDB分布式版产品架构
890 2
|
人工智能 API 知识图谱
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
本文介绍了使用不同模型和平台体验GraphRAG的过程。首先通过OpenAI的GPT-4O Mini模型对沈从文的《边城》进行了分析,展示了如何安装GraphRAG并配置参数,最终实现了对文本的有效查询。随后,文章探讨了在国内环境下使用SiliconCloud作为替代方案的可能性,以《三国演义》为例,演示了使用SiliconCloud模型进行相同操作的步骤。此外,还讨论了使用本地模型如Ollama和LM Studio的可能性,尽管受限于硬件条件未能实际运行。最后,提出了混合使用在线对话模型API与本地或在线嵌入模型的方法,并列举了一些能够使GraphRAG流程跑通的大模型。
1011 10
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
|
人工智能 安全 大数据
新一代信息通信技术
新一代信息通信技术
1947 5
|
API Python
|
人工智能 vr&ar 图形学
开源单图生成3D模型TripoSR的应用场景
【2月更文挑战第24天】开源单图生成3D模型TripoSR的应用场景
737 1
开源单图生成3D模型TripoSR的应用场景

热门文章

最新文章