搜索
您的当前位置:首页MySQL中清空表和删减表的区别

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. 总结

清空操作:DELETE FROM table_name ; 不会重置⾃增字段,效率低,有⽇志记录,会激活触发器。 对于数据量⼤的表,执⾏的⽐较慢。

删减操作:TRUNCATE [TABLE] table_name ; 会重置⾃增字段,效率⾼,⽆⽇志记录,不会激活触发器。 请谨慎使⽤,⼀旦执⾏,数据⽆法恢复。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top