MySQL大表清空和删除正确方法
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,MySQL大表清空和删除正确方法1 清空大表1.1 truncate删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所有行,而不记录单个行删除操作
千家信息网最后更新 2025年11月08日MySQL大表清空和删除正确方法
MySQL大表清空和删除正确方法
1 清空大表
1.1 truncate
删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所有行,而不记录单个行删除操作。TRUNCATE TABLE 与没有 WHERE 子句的 DELETE 语句类似;但是,TRUNCATE TABLE 速度更快,使用的系统资源和事务日志资源更少。
truncate 清空表数据,50G的表大概需要20秒以上;
mysql> truncate table old_table;1.2 rename
1.2.1 格式:
mysql> rename table 原表名 to 新表名;当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。
1.2.2 实例
# 新建一个空表(测试);mysql> create table old_table(id int);# new_table克隆old_table的表结构;mysql> create table new_table like old_table;# old_table改名为backup_table,new_table改名为old_table;mysql> RENAME TABLE old_table TO backup_table, new_table TO old_table;# 删除旧表及数据;mysql> DROP TABLE old_table; 2 删除
2.1 背景
在生产环境有可能有删除某个不重要大表的需求,因为大表占用的大量磁盘空间,如果我们直接drop掉此表,通常需要20秒以上的时间,总会觉得会卡主MySQL,现在给大家一个正确的删除方法。
2.2 首先我们查看此大表
# shell[root@ras221 db]# du -shc old_table*12K old_table.frm49G old_table.ibd[root@ras221 db]# ls -l old_table*-rw-r----- 1 mysql mysql 9075 11月 8 11:39 old_table.frm-rw-r----- 1 mysql mysql 52273610752 1月 10 14:12 old_table.ibd[root@ras221 db]# ln old_table.ibd old_table.ibd.bak # 硬链接;[root@ras221 db]# ls -l old_table*-rw-r----- 1 mysql mysql 9075 11月 8 11:39 old_table.frm-rw-r----- 1 mysql mysql 52273610752 1月 10 14:12 old_table.ibd-rw-r----- 1 mysql mysql 52273610752 1月 10 14:12 old_table.ibd.bak[root@ras221 db]# # mysql mysql> drop table old_table;Query Ok, 0 rows affacted(0.92 sec)通过这样的操作,可以减少mysql drop大表hang住的时间,然后在业务低峰期再去删除真实的那个.b文.bak件。
至于原理:
就是利用OS HARD LINK的原理,
当多个文件名同时指向同一个INODE时,这个INODE的引用数N>1, 删除其中任何一个文件名都会很快.
因为其直接的物理文件块没有被删除.只是删除了一个指针而已;
当INODE的引用数N=1时, 删除文件需要去把这个文件相关的所有数据块清除,所以会比较耗时;
对于大表操作操作的其实几个Tips:
可以先用rename table替代drop table
mysql> rename table old_table to old_table_bak;
这个动作也很快只是相当于改一个文件名。
另外也可以考虑使用XFS文件系统,对于Drop表动作也比较快。
文件
数据
方法
事务
动作
原理
只是
很快
文件名
时间
权限
系统
资源
重要
业务
单个
原初
同时
名都
多个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
马甲网络安全手抄报
omi 数据库
简述几个常见的软件开发模型
广电网络技术骨干工作计划
华为云DBS数据库
动漫插图软件开发
深圳迅捷网络技术有限公司
苹果手机不安全无法连接服务器
全球最大数据库应用公司
广州本地生活app软件开发
已知一个简单的事物数据库
mapgis如何添加数据库
北京字节网络技术有限公司官网
好药师网络安全平台
我的世界服务器没法加mod吗
网络安全经理完整版
宜昌网络安全学校
集群项目访问数据库需要锁吗
私有云平台上建数据库
软件开发方法是软件开发的
怎样打开已存数据库
数据库的著作权保护缺陷
服务器连接数据库
抚顺app软件开发哪家好
电子出入库管理软件开发
成品软件开发第一人
oracle数据库实体类
数据库课程设计是不是很难
服务器上运行易语言停止工作
wow新开的服务器