MySQL数据库——truncate和delete的区别

本文详细对比了数据库操作中的Truncate和Delete命令。Truncate属于DDL,仅删除表数据,不涉及视图和触发器,速度快;而Delete是DML,可精确删除特定数据,支持事务,但速度相对较慢。在大量数据删除时,Truncate的效率更高,且删除不可恢复。了解这些差异对于优化数据库性能至关重要。
摘要由CSDN通过智能技术生成

Truncate和delete的区别:

1、delete属于数据操作语言,不仅可以删除表中的数据,还可以删除基于真实表创建的视图中的数据,也可以结合where条件精确地删除某一条数据,还有可能涉及触发器。Truncate属于数据定义语言,只能删除表中的数据,不能作用于视图,而且不支持where子句,如果作用于表会直接删除表中的所有数据,而且不会设计触发器。

2、delete删除数据涉及到缓存,当数据非常大时可能缓存不够用,而且速度会很慢。Truncate不涉及缓存,所以涉及到大量数据时,用truncate删除数据速度会更快,效率也高。

3、delete删除表时,会涉及事物,可以支持事物的提交和回滚。首先他不会真正删除,而是将删除的数据放入一个缓存区,可以通过回滚恢复数据。而truncate不涉及事物处理,所以truncate删除数据不可恢复。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值