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