记录MySql删除42亿行数据表方法

背景:

现网db有个log表自增ID溢出,业务已经切换到其他表,但是之前有其他业务删除大表导致现网出现故障,这里考虑到是一张静态表,所以采用的是直接删除的方式,记录下当时的删除的步骤。

直接删除的风险:

1)长时间的执行时间可能会一直占用很多cpu,导致IO异常
2)删除大量数据时,MySQL通常会获取表级别的锁定,这可能会导致其他会话的阻塞

修改参数:

innodb_adaptive_hash_index =OFF
innodb_async_truncate_work_enabled =ON
innodb_async_drop_tmp_dir 非空

参数解释:
1、innodb_adaptive_hash_index

innodb_adaptive_hash_index 是MySQL InnoDB存储引擎的一个配置参数,用于控制自适应哈希索引(Adaptive Hash Index)的启用或禁用。

自适应哈希索引是InnoDB存储引擎的一个特性,用于提高查询性能。它通过在内存中维护一个哈希索引结构,加速对表的查询操作。自适应哈希索引会根据查询模式和数据访问模式动态地调整和优化索引结构,以提供更好的性能。

默认情况下,innodb_adaptive_hash_index 参数是启用的(ON),这意味着自适应哈希索引功能是开启的。当启用自适应哈希索引时,InnoDB存储引擎会根据查询模式和数据访问模式自动调整哈希索引的大小和结构,以提供更好的查询性能。

2、innodb_async_truncate_work_enabled

innodb_async_truncate_work_enabled 是MySQL InnoDB存储引擎的一个配置参数,用于控制异步截断操作的启用或禁用。

异步截断是指在删除或截断表时,MySQL InnoDB存储引擎是否使用异步方式执行这些操作。异步截断可以提高删除或截断大表时的性能,因为它允许MySQL继续处理其他查询和操作,而不必等待删除或截断操作完成。

默认情况下,innodb_async_truncate_work_enabled 参数是启用的(ON),这意味着异步截断功能是开启的。当执行删除或截断操作时,MySQL InnoDB存储引擎会将这些操作放入一个队列中,并在后台异步执行。这样,删除或截断操作可以更快地完成,而不会阻塞其他查询和操作。

3、innodb_async_drop_tmp_dir

innodb_async_drop_tmp_dir 是 MySQL InnoDB 存储引擎的一个配置参数,用于指定异步临时表删除操作的临时文件目录。

在 MySQL 中,当使用 InnoDB 存储引擎创建临时表时,如果启用了异步临时表删除功能,那么在删除临时表时,MySQL 会将删除操作放入一个队列中,并在后台异步执行。这样可以提高删除临时表的性能,因为 MySQL 不需要等待删除操作完成才能继续处理其他查询和操作。

innodb_async_drop_tmp_dir 参数用于指定异步临时表删除操作的临时文件目录。默认情况下,该参数为空,表示使用 MySQL 配置文件中的 tmpdir 参数指定的临时文件目录。

总结:

修改完这些参数执行drop命令后,实现了秒级删除,业务负载正常。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/182078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 磁盘挂载

一、查看挂载点 df -h 二、查看磁盘信息 fdisk -l 下面红色的这一块就是未分区的磁盘 三、 进行磁盘分区 fdisk /dev/sdb /dev/sdb :是上面fdisk -l查询出来未分区的磁盘地址 根据提示输入m获取命令 四、执行命令,创建一个分区 1、新建分区&#…

【前端】three.js

文章目录 概述three.js-master目录结构Threejs 的基本要素场景相机透视相机正交相机 网格2d3d 灯光AmbientLight(环境光)平行光(DirectionalLight)点光源(PointLight)聚光灯(SpotLight) 渲染器 Threejs 的实…

WordPress更改文章分类插件

当WP网站内容比较多的时候,有时候如果涉及到批量修改文章分类,如果一个个的去操作的话就太费事了,如果使用后台批量修改分类的话是增加旧分类不会取消选择,就就导致我们适得其反还需要一个一个的去编辑取消,实在繁琐了…

Java高级技术(单元测试)

一,概括 二,junit 三,案例 (1),实验类 package com.bilibili;public class Name {public static void main(String name) {if (name null){System.out.println("0");return;}System.out.print…

PC端数据列表有头像显示头像,没有头像显示名字的第一个字

PC端数据列表有头像显示头像&#xff0c;没有头像显示名字的第一个字 .charAt(0) 是 JavaScript 字符串对象的方法&#xff0c;用于获取字符串的第一个字符。 字符串中的字符位置是从 0 开始的&#xff0c;所以.charAt(0) 就表示获取字符串的第一个字符。 <el-table ref&qu…

哈希思想应用【C++】(位图,布隆过滤器,海量数据处理面试题)

目录 一&#xff0c;位图 1. 位图概念 2.实现 3. 测试题 位图的优缺点 二&#xff0c;布隆过滤器 1). 布隆过滤器提出 2). 概念 3). 布隆过滤器的查找 4). 布隆过滤器删除(了解) 5). 布隆过滤器优点 6). 布隆过滤器缺陷 三&#xff0c;海量数据面试题 1&#xff…

java开发必备的Tomcat-servlet-http和spring boot基础入门

tomcat 介绍 概念&#xff1a; Tomcat是一个开源免费的轻量级Web服务器&#xff0c;是Apache软件基金会的核心项目&#xff0c;支持Servlet/JSP少量JavaEE(JakartaEE)规范。 JavaEE&#xff1a;Java Enterprise Edition&#xff0c;Java企业版。指Java企业级开发的技术规范总和…

Arduino驱动DHT20温湿度传感器(温湿度传感器)

目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序 DHT20温湿度传感器是DHT11的全新升级版。 DHT20采用全新的ASIC专用芯片、改进的MEMS半导体电容式湿度传感器元件和标准片上温度元件。所有传感器均经过工厂校准,具有低功耗、高精度和稳定性、响应…

Testlink 1.9.20+phpstudy_pro安装遇到的问题

phpstudy_pro启动了Apache2.4.39和Mysql5.7.26,php的版本是7.3.4zai。 安装Testlink 1.9.19时没有数据库的问题&#xff0c;安装Testlink 1.9.20时遇到了数据库问题&#xff0c;如下图所示&#xff1a; 网上搜索“Failed!Mysql Database cannnot be used”&#xff0c;给出的…

【笔记+代码】JDK动态代理理解

代码地址 https://github.com/cmdch2017/JDKproxy.git/ 我的理解 我的理解是本身service-serviceImpl结构&#xff0c;新增一个代理对象proxy&#xff0c;代理对象去直接访问serviceImpl&#xff0c;在proxy进行事务的增强操作&#xff0c;所以代理对象实现了接口。如何实现…

STM32开发学习(地址映射)

LED灯代码&#xff1a; #define PERIPH_BASE ((unsigned int)0x40000000)#define AHB1PERIPH_BASE (PERIPH_BASE 0x00020000)#define GPIOF_BASE (AHB1PERIPH_BASE 0x1400)#define GPIOF_MODER *(unsigned int*)(GPIOF_BASE0x00) #define GPIOF_BSRR *(uns…

如何批量群发邮件

批量群发邮件的方法有多种&#xff0c;以下列举几种常见的方式&#xff1a; 使用专业的邮件营销平台&#xff1a;通过专业的邮件营销平台&#xff0c;如一米软件、米贸搜等&#xff0c;可以一次性向多个收件人发送邮件。这些平台通常具有强大的邮件发送和管理功能&#xff0c;…

Linux下Docker 离线安装详细步骤,亲测成功

1.离线原因&#xff1a;公司新创不能使用开元linux&#xff0c;使用了一个变种centOS&#xff0c;致使yum被禁 2.步骤&#xff1a; 2.1 下载docker tar包&#xff0c;下载地址&#xff1a;Index of linux/https://download.docker.com/linux/ 2.2 新建自己的软件目录&am…

大数据之HBase

HBase介绍 Apache的三篇论文&#xff0c;GFS谷歌文件系统->HDFS&#xff1b;MR -> MR ; BigTable ->HBase;HBase是hadoop数据库&#xff0c;一种分布式、可扩展的大数据NoSQL数据库之一。适合对于大量数据进行随机、实时的读写操作 HBase数据模型 Bigtable是一个稀…

It was migrated from homebrew/core to homebrew/cask.

给mac配置安卓环境时报错&#xff1a; brew install android-platform-tools Warning: No available formula with the name "android-platform-tools". > Searching for similarly named formulae... Error: No similarly named formulae found. It was migrate…

时区处理综述(java技术栈)

文章目录 一、jdbc协议对时间的序列化(不含时区信息)数据库的两个时间类型中国数据库使用的CST时区无法被java正确识别jdbc协议跨时区传输方案 二、数字时间戳(可跨时区传输)定义用途 三、ISO8601(可跨时区传输)java的序列化方法js的序列化方法 四、解析时间字符串(不含时区信息…

【C 语言经典100例】C 练习实例6

题目&#xff1a;用*号输出字母C的图案。 程序分析&#xff1a;可先用’*号在纸上写出字母C&#xff0c;再分行输出。 程序源代码&#xff1a; #include "stdio.h" int main() {printf("用 * 号输出字母 C!\n");printf(" ****\n");printf(&quo…

【傻瓜级JS-DLL-WINCC-PLC交互】8.DLL读写WINCC连接的PLC数据

思路 JS-DLL-WINCC-PLC之间进行交互&#xff0c;思路&#xff0c;先用Visual Studio创建一个C#的DLL控件&#xff0c;然后这个控件里面嵌入浏览器组件&#xff0c;实现JS与DLL通信&#xff0c;然后DLL放入到WINCC里面的图形编辑器中&#xff0c;实现DLL与WINCC的通信。然后PLC与…

Vue实现可拖拽边界布局

Vue实现可拖拽边界布局 在前端开发中&#xff0c;有时需要实现一种可拖拽边界的布局&#xff0c;通过拖动分隔线来调整不同区域大小。例如&#xff0c;下图是一个典型的可拖拽边界布局&#xff0c;它由左右两个区域组成&#xff0c;左边是一个树形菜单&#xff0c;右边是一个上…

expect自动化交互

目录 1. expect作用&#xff1a; 2. expect语言用法&#xff1a; 3. 实例 1. expect作用&#xff1a; 是建立在tcl语言基础上的一个工具&#xff0c;常被用于进行自动化控制和测试&#xff0c;解决shell脚本中交互的相关问题。 2. expect语言用法&#xff1a; spawn开启免…