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