mysql 中truncate与delete的区别


一、 delete后可以跟 where条件, truncate不能跟条件

二、delete删除后有影响行数显示, truncate没有受影响行数显示

三、 delete是一条一条数据删除,效率低 truncate是将整个表删除,在创建一个一模一样的表结构,效率高

四、 delete删除后自增在原来最大值基础上, truncate会重新开始

五、 deleter除是可以回滚的, truncate不能回滚

总结

1、在速度上,一般来说,drop> truncate> delete。

2、如果想删除部分数据用 delete,注意带上 where子句,回滚段要足够大;