清空表的两种方式
MySQL有两种清空表的方式。
清空(truncate)
delete from 表名;删除(delete)
truncate table 表名;两种方式的区别
删除方式
-
truncate 是整体删除,不扫描表,相当于重新创建了表,只保留了表的结构,然后删除掉原有表,删除速度较快 -
delete是逐条删除,会扫描全表,会根据条件判断,删除速度较慢
自增字段
-
truncate后自增字段重新从 1 开始 -
delete 保持自增最大值
日志
-
truncate操作不写入日志,所以清空的数据无法恢复 -
delete 操作写入日志,删除的数据可以恢复
触发器
-
truncate 不激活触发器 -
delete 激活触发器
参考
【1】:MySQL 清空表(truncate)与删除表中数据(delete) 详解
【2】:mysql清空表数据的两种方式和区别
