MySQL大表删除方案

1.问题

在生产环境中,执行大表删除操作时,很容易因为占用了大量io资源导致其他事务被阻塞,最终事务不断堆积导致MySQL挂掉。

2.drop命令

drop命令,MySQL主要干了两件事:

  1. 清除buffer pool缓冲(内存)
  2. 删除表的ibd数据文件(磁盘)

第一点,因为buffer pool中存在最近修改的数据(称为脏页)还未刷新到磁盘中,如果需要删除表,那么则需要把这些脏页丢弃(都删除表了,那数据自然也不需要了)。

第二点,最关键和耗时的步骤,删除表磁盘上的数据文件,这会导致占用大量的io资源。

3.解决

借助linux硬链接的机制,为表的数据文件创建一个硬链接,这样执行drop操作时,删除的就不是真实的数据文件,而是一个指针,能够极大的提高drop速度,降低影响其他事务执行的风险。

创建硬链接的命令:

ln sysuser.ibd sysuser.ibd.hdlk

drop表完成后,就只剩下一个硬链接文件了,可以找个业务低峰期使用truncate或rm命令将其删除

4.注意

即使借助硬链接删除表很快,但也要挑选在业务低峰期去执行。这是我亲身经历的一个教训,在下午5点多下班的时候去删除一个与业务无关的表,20多T,结果还是导致数据库阻塞了,后面的事务全都在等待,事务一直堆积导致数据库挂了。(这应该和硬件性能有关,要是io给力直接秒删,连硬链接都不需要)

最后还是晚上11点我师傅去删了,也是硬链接的方式,花了不到两分钟。

在这里插入图片描述
在这里插入图片描述

用硬链接删除的方式也是我学习其他大神的,以下是参考博客:

https://www.cnblogs.com/rjzheng/p/9497109.html

https://www.modb.pro/db/450054.html

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

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

相关文章

jmeter之MD5加密接口请求教程

前言: 有时候在项目中,需要使用MD5加密的方法才可以登录,或者在某一个接口中遇到 登录获取token后才可以进行关联,下面介绍下遇到的常见使用 一、第一种方法:使用jmeter自带的函数助手digest 选择工具,选择…

一文带你学会如何部署个人博客到云服务器,并进行域名备案与解析!

哈喽,大家好呀!这里是码农后端。之前我给大家介绍了如何快速注册一个自己的域名,并创建一台自己的阿里云ECS云服务器。本篇将介绍如何将个人博客部署到云服务器,并进行域名备案与解析。 1、域名备案 注册了域名并购买了云服务器之…

识别鼠标绘制的数学公式网站

https://webdemo.myscript.com/views/math/index.html x n m x n x m x^{nm}x^{n}\times x^{m} xnmxnxm 使用"$$"进行包裹

unity开发Hololens,使用unity自带的UGUI

hololens 使用UGUI 新建画布,添加组件, 画布模式改成WorldSpace,这样在能在3D场景里 随意的移动位置, 添加NearIteractionTouchaBleUnityUI、CanvasUtility组件 EaventsToReceive改成Pointer, 这样,UGUI的…

Golang | Leetcode Golang题解之第113题路径总和II

题目: 题解: type pair struct {node *TreeNodeleft int }func pathSum(root *TreeNode, targetSum int) (ans [][]int) {if root nil {return}parent : map[*TreeNode]*TreeNode{}getPath : func(node *TreeNode) (path []int) {for ; node ! nil; no…

2024年中国电机工程学会杯数学建模思路 - 案例_ ID3-决策树分类算法

# 前言 2024电工杯(中国电机工程学会杯)数学建模思路解析 最新思路更新(看最新发布的文章即可): https://blog.csdn.net/dc_sinor?typebloghttps://blog.csdn.net/dc_sinor/article/details/128779911) 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就…

骑行 - 新区永旺出发的环太湖路线

环过好几次太湖,但对路线都没太在意,都是跟着别人走的。这次自己制定一个路书,方便下次自己一个人环太湖时使用。 开始是使用高德地图做路书,只能在PC上做。我用的是网页版,每次选点太麻烦了。要输入地址搜索&#xff…

Nginx代理配置(专业版)

写在前面提醒:使用代理,如果可以,请尽量支持双协议,http、https均要支持哈。 注意:监控系统只是运行代码,是否支持https,需要运维同学在你们的服务器上配置https证书,配置好证书&…

探索集合python(Set)的神秘面纱:它与字典有何不同?

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、集合(Set)与字典(Dictionary)的初识 1. …

Mysql函数

字符串函数 concat(s1,s2…sn)把传入的参数连接成一个字符串 注意:任何字符串与NULL进行连接的结果都将是NULL insert(str,x,y,instr)函数:将字符串str从第x位置开始,y个字符长度的字串替换为instr lower…

从“反超”到“引领”,中国卫浴品牌凭何遥遥领先?

作者 | 曾响铃 文 | 响铃说 前不久,第28届中国国际厨房、卫浴设施展览会(以下简称“中国国际厨卫展”)在上海如期举行,就结果来说真的让人大开眼界。 冲水声比蚊子声更小的马桶、能化身无感交互平台的魔镜柜、可以语音交互的淋浴器,这些“…

类与对象(上)

目录 ​编辑 一、面向过程和面向对象初步认识 二、类的引入 三、类的定义 四、类的访问限定符及封装 4.1 访问限定符 【面试题】 4.2 封装 【面试题】 五、类的作用域 六、类的实例化 七、类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式猜测 7.3 结…

Yolov9调用COCOAPI生成APs,APm,APl

最近在做小目标检测的东西,因为后期毕业论文需要,所以开始使用Yolov9模型,运行val.py的时候不会自己产生小目标的AP指标,所以研究了一下,步骤非常简单: 第一步: 在数据集中生成json格式的Annota…

ROS参数服务器

一、介绍 参数服务器是用于存储和检索参数的分布式多机器人配置系统,它允许节点动态地获取参数值。 在ROS中,参数服务器是一种用于存储和检索参数的分布式多机器人配置系统。它允许节点动态地获取参数值,并提供了一种方便的方式来管理和共享配…

开源大模型与闭源大模型

概述 开源大模型和闭源大模型是两种常见的大模型类型,它们在以下方面存在差异: 开放性: 开源大模型:代码和模型结构是公开可用的,任何人都可以访问、修改和使用。闭源大模型:模型的代码和结构是私有的&…

Thymeleaf 搭建家居网首页

文章目录 1.引入Thymeleaf sunliving-commodity模块1.在resources目录下引入Thymeleaf 所需资源2.pom.xml引入Thymeleaf依赖3.application.yml 关闭缓存,使页面实时刷新4.在application-prod.yml开启缓存5.编写com/sun/sunliving/commodity/web/IndexController.jav…

文心智能体大赛:百度文心智能体平台初体验

写在前面 博文内容涉及:文心智能体大赛:文心智能体初体验理解不足小伙伴帮忙指正 😃,生活加油 我徒然忘记了热闹,却来不及悟透真正的清冷(《四喜忧国》) 前言 徒然忘记了热闹,却来不及悟透真正的清冷(《四喜忧国》),在…

LiveGBS流媒体平台GB/T28181用户手册-版本信息:查看机器码、切换查看流媒体服务

LiveGBS流媒体平台GB/T28181用户手册--版本信息:查看机器码、切换查看流媒体服务 1、版本信息1.1、查看机器码1.2、多个流媒体服务1.3、提交激活 2、搭建GB28181视频直播平台 1、版本信息 版本信息页面,可以查看到信令服务 流媒体服务相关信息,包含硬件…

从XPS迁移到IP Integrator

从XPS迁移到IP Integrator 概述 AMD Vivado™设计套件IP集成器可让您将包含AMD的设计缝合在一起 IP或您的自定义IP在相对较短的时间内,在GUI环境中工作。 就像在Xilinx Platform Studio中一样,您可以快速创建嵌入式处理器设计(使用&#xff0…

[C++]debug介绍+debug时如何查看指针指向内存处的值

一、简介 预备工具和知识:使用使用VSCode使用Debug。 本文简介:本文将简要介绍debug中Continue,Step Over,Step Into和Restart的功能。并介绍如何在debug时查看动态内存地址(指针)的值; 二、D…