数据库
首页 > 数据库> > MySQL中清空表和删减表的区别

MySQL中清空表和删减表的区别

作者:互联网

1. 在Navicat操作清空表中数据时,发现清空表(delete table)和删减表(truncate table)两个选项,这两个选项都是实现清空MySQL表中的数据,那么两者的区别是什么?

 

 

2. 区别:

(1)SQL不同:

清空表:DELETE FROM table_name;

删减表:TRUNCATE [TABLE] table_name;

 

(2)返回值不同:

清空操作,返回删除的行数。

删减操作,返回0。

 

(3)自增字段处理

清空:不会将自增字段置为1,继续保留最大值。

删减:将字段置为1。

 

(4)效率比较

清空:扫描全盘,表数据越多删减越慢。

删减:不扫描全盘,效率高,机会与表数据无关。(相当于重新创建表,只保留了表结构,然后删除掉原有表,效率非常高)

 

(5)日志记录

清空:会记录日志,可恢复。

删减:不记录日志,不可回复。谨慎使用!

 

(6)触发器影响

清空:相当于执行delete删除语句,会激活触发器。

删减:直接对表操作,不会激活触发器。

 

 

3. 总结

 

 

来自:https://www.cnblogs.com/better-farther-world2099/articles/14657528.html

标签:触发器,name,MySQL,删减,清空,table,日志
来源: https://www.cnblogs.com/keye/p/14942080.html