MySQL大表清空和删除正确方法

本文介绍了在MySQL中高效清空和删除大表的方法。清空大表推荐使用TRUNCATE TABLE,它比DELETE速度快且资源消耗少。另一种方法是RENAME TABLE,但需注意权限和无活动事务。在删除大表时,建议在业务低峰期使用rename操作,再删除物理文件以减少阻塞。此外,讨论了利用OS硬链接原理加速删除,并推荐使用XFS文件系统。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值