MySQL 删除大表的性能问题解决方案
时间:2024-01-18 22:20:31
微博上讨论MySQL在删除大表engine=innodb(30G+)时,如何减少MySQL hang的时间,现做一下简单总结:
当buffer_pool很大的时候(30G+),由于删除表时,会遍历整个buffer pool来清理数据,会导致MySQL hang住,解决的办法是:
1、当innodb_file_per_table=0的时候,以上不是问题,因为采用共享表空间的时候,该表所占用的空间不会被删除,buffer pool中的相关页不会 被discard。
2、当innodb_file_per_table=1的时候,并且当buffer_pool比较大的时候,遍历整个buffer pool 需要很多的时间(table_cache 会被锁住,所有的DML操作被阻止)。
认识误区:
将innodb 表改为 myisam表,这个是没有效果的,该操作会删除旧表,建立新表,依然会遍历整个buffer_pool。
解决思路:
1、采用脚本形式,批量删除部分记录
2、可以再slave上进行操作,进行主备切换(成本高)
3、Percona 5.1.58以上版本都支持innodb_lazy_drop_table(bug不少,慎用)
4、与buffer pool无关,但是可以加快 删除数据文件的速度,同样能减少MySQL hang住的时间。即:对数据文件建立硬链接,(依赖原理:OS HARD LINK 当多个文件名同时指向同一个INODE时,这个INODE的引用数N>1, 删除其中任何一个文件名只是删除了一个指针而已,不会删除数据文件。当INODE的引用数N=1时, 删除文件需要去把这个文件相关的所有数据块清除,所以会比较耗时)
标签:mysql,删除表
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python在groupby分组后提取指定位置记录方法
2023-06-09 08:48:16
![](https://img.aspxhome.com/file/2023/7/95207_0s.jpg)
一文搞懂 parseInt()函数异常行为
2024-04-30 08:57:11
SpringBoot调用python接口的实现步骤
2022-01-24 22:41:57
![](https://img.aspxhome.com/file/2023/3/118523_0s.png)
Python3基于sax解析xml操作示例
2022-06-07 10:18:52
![](https://img.aspxhome.com/file/2023/6/123506_0s.png)
基于Python实现股票收益率分析
2022-03-15 20:24:08
![](https://img.aspxhome.com/file/2023/5/109635_0s.png)
vs10安装之后一些列问题
2024-01-29 11:59:48
PyTorch中的参数类torch.nn.Parameter()详解
2021-09-07 19:06:30
深入理解Python虚拟机中描述器的实现原理
2021-08-05 21:20:48
vue项目的创建的步骤(图文教程)
2024-05-21 10:16:29
![](https://img.aspxhome.com/file/2023/0/125290_0s.png)
pyqt5与matplotlib的完美结合实例
2022-01-09 12:23:59
python ftp 按目录结构上传下载的实现代码
2021-01-28 00:38:33
python利用opencv实现SIFT特征提取与匹配
2021-07-22 19:08:46
![](https://img.aspxhome.com/file/2023/8/69058_0s.jpg)
Python的Flask框架中@app.route的用法教程
2022-05-14 07:25:19
php牛逼的面试题分享
2023-11-20 19:31:35
python迭代器实例简析
2023-07-26 07:40:29
vee-validate vue 2.0自定义表单验证的实例
2023-07-02 17:09:33
Python元素集合的列表切片
2023-08-08 23:08:57
![](https://img.aspxhome.com/file/2023/3/121383_0s.jpg)
vue实现给div绑定keyup的enter事件
2024-05-13 09:08:51
![](https://img.aspxhome.com/file/2023/4/126644_0s.jpg)
python读取dicom图像示例(SimpleITK和dicom包实现)
2023-07-06 14:08:10
MSMQ微软消息队列详解
2024-05-03 15:32:00
![](https://img.aspxhome.com/file/2023/3/129703_0s.jpg)