数据库中的drop、truncate、delete有什么区别❓

drop、truncate、delete区别❓

    🕐分别删除什么❔
        drop:删除一个表的所有内容,包括表数据和表结构,并且释放表空间
        truncate:删除所有表数据,并不会删除表结构,并且让表恢复到初始大小
        delete:删除表数据,并不会删除表结构,不会减少表所占用空间
    前两者都属于DDL,执行则立即生效,delete则要到事务提交时才生效

    🕑会将原数据放入Rollback Segment吗❔(🔗Rollback Segment是什么?
        drop:❌
        truncate:❌
        delete:✔
    这也就意味着前两者不可以进行回滚操作,前两者的删除不可恢复

    🕒会将删除操作记入日志吗❔
        drop:❌
        truncate:❌
        delete:✔

    🕓在执行时可触发trigger吗❔
        drop:❌
        truncate:❌
        delete:✔

    🕔速度对比:
        drop > truncate > delete
    (1)delete需要记录日志所以较慢
    (2)truncate有点类似于drop之后再create,所以速度上接近于drop

    🕕总结:
        delete->撕掉书的一页
        truncate->烧掉书的内容,留了一个目录
        drop->整本书全烧了
    ❗注意:撕掉还能粘上,烧成灰可就恢复不了了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值