MySQL清空表

清空表的两种方式

MySQL有两种清空表的方式。

清空(truncate)

delete from 表名;

删除(delete)

truncate table 表名;

两种方式的区别

删除方式

  • truncate 是整体删除,不扫描表,相当于重新创建了表,只保留了表的结构,然后删除掉原有表,删除速度较快
  • delete是逐条删除,会扫描全表,会根据条件判断,删除速度较慢

自增字段

  • truncate后自增字段重新从 1 开始
  • delete 保持自增最大值

日志

  • truncate操作不写入日志,所以清空的数据无法恢复
  • delete 操作写入日志,删除的数据可以恢复

触发器

  • truncate 不激活触发器
  • delete 激活触发器



参考

【1】:MySQL 清空表(truncate)与删除表中数据(delete) 详解
【2】:mysql清空表数据的两种方式和区别

猜你喜欢

转载自blog.csdn.net/sinat_40770656/article/details/112217974