首页 / MYSQL / MYSQL百G大表正确清空方式
MYSQL百G大表正确清空方式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MYSQL百G大表正确清空方式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1536字,纯文字阅读大概需要3分钟。
内容图文
当我们遇到大表清空时,会有几种相应的操作方法(表player):1. truncate table player;
2. 创建新表、rename表、然后直接drop老表
3. 创建新表、rename表、创建老表硬链接、slowrm进行大文件删除。
注:创建新表时,需要提前和开发沟通用来确认新表自增ID起始位置
下面将是几种方案的操作步骤以及优劣势
1.操作步骤:
* truncate table player;
优势:操作简单
劣势:表产生元数据锁,机器资源占用过高。
结论:强烈不推荐使用
2.操作步骤:
* create table player_new like player;
* rename table player to player_old_del, player_new to player;
* drop table player_old_del;
优势:减少锁时间,表切换业务基本无感
劣势:drop 表依然会产生大量机器IO占用,导致MYSQL性能急剧下降
结论:此方案可以在业务低峰期执行。
3.操作步骤:
* create table player_new like player;
* rename table player to player_old_del, player_new to player;
* 在OS层为player_old_del.ibd文件创建硬链:ln player_old_del.ibd player_old_del.ibd.ln
* drop table player_old_del;
* 通过slowrm限制删除硬链文件:slowrm -f -s 1 -b 1073741824 player_old_del.ibd.ln(注:SSD类磁盘基本IO使用率控制在20%左右)
优势:减少锁时间,表切换业务基本无感,drop 表以及删除大文件不会对业务产生影响。
劣势:操作繁琐,需要去每个slave节点创建硬链接并且进行删除。
结论:推荐此方法,建议把操作封闭成脚本化。
在对数据库进行任何DDL操作时,不仅要关注数据库层面影响,而且还要对于当前系统层影响做出相应判断。
MYSQL百G大表正确清空方式
标签:mysql 简单 大文件 步骤 sql 时间 影响 方式 机器
本文系统来源:https://blog.51cto.com/11145134/2486347
内容总结
以上是互联网集市为您收集整理的MYSQL百G大表正确清空方式全部内容,希望文章能够帮你解决MYSQL百G大表正确清空方式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】