MySQL 中 Delete 和 Truncate 有什么区别?

发布于 2022-09-21 08:59:01
关注者
0
被浏览
19
5 个回答
  • 匿名网友
    匿名网友 2022-09-21
    delete 是DML 是事物操作,会将删除的数据记录进redo日志,再进行删除,如果有触发依赖的话,会触发触发器:truncate是DDL语句,不会写入日志,和drop一样,不会触发触发器。很难恢复数据。
  • 匿名网友
    匿名网友 2022-09-21
    Delete是属于DDL语言,执行的时候不需要提交直接执行,直接全表删除。 Truncate是属于DML需要,执行的时候需要COMMIT提交,可以对表进行部分数据删除。如果误操作可以回滚来恢复数据。 使用效率上Delete快,Truncate慢🤧
  • 匿名网友
    匿名网友 2022-09-21
    Delete 属于DML,执行操作没有提交的话,数据会存在redo和undo表空间之中,可以rollback,提交了也可以使用内闪回! Truncate 属于DDL,会隐式提交,不能回滚,不能触发触发器
  • 匿名网友
    匿名网友 2022-09-21
    delete是删除表中的指定条件的数据,truncate是一次性清空表内的数据,相当于重置一张空表
  • 匿名网友
    匿名网友 2022-09-21
    delete     DML语句可以回滚  ,需要计入日志, 可以清空表,也可以删除部分数据(速度慢) truncate    DDL语句不可以回滚 ,不计入日志,只能清空表(速度快)
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看