在mysql中,truncate和delete的区别

本文详细对比了数据库中Truncate和Delete命令的差异。Truncate无法添加WHERE条件,不显示删除行数,不支持事务回滚,但速度更快,适合全表清理,且重置自增序列。Delete能按条件删除,可回滚,但效率较低。在使用时需谨慎,特别是对大量数据的操作。
摘要由CSDN通过智能技术生成

1. delete后面可以跟where条件,truncate不能跟条件。

2. delete删除后有影响行数显示,truncate没有受影响行数显示。

3. delete是一条一条数据删除,效率低;

truncate是将整个表删除,在创建一个一模一样的表结构,效率高。

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

5. delete删除是可以回滚的,truncate不能回滚。

总结:

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

2. 在使用drop和truncate时一定要注意,虽然可以恢复,但是为了减少麻烦,还是慎用。

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

truncate

delete

条件删除

不支持

支持

事务回滚

不支持

支持

清理速度

高水位重置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值