delete 和 truncate 的区别

delete 和 truncate 的区别delete逐条删除表“内容”,truncate先摧毁表再重建。 (由于delete使用频繁,Oracle对delete优化后delete快于truncate)delete是DML语句,truncate是DDL语句DML语句可以闪回(flashback),DDL语句不可以闪回。(闪回:做错了一个操作并且commit了,对应的撤销行为)由于delete是逐条操作…

大家好,欢迎来到IT知识分享网。delete 和 truncate 的区别

  1. delete 逐条删除表“内容”,truncate 先摧毁表再重建。 (由于delete使用频繁,Oracle对delete优化后delete快于truncate)

  2. delete 是DML语句,truncate 是DDL语句
    DML语句可以闪回(flashback),DDL语句不可以闪回。(闪回: 做错了一个操作并且commit了,对应的撤销行为)

  3. 由于delete是逐条操作数据,所以delete会产生碎片,truncate不会产生碎片。(由于Oracle对delete进行了优化,所以delete不产生碎片)

  4. delete不会释放空间,truncate 会释放空间
    用delete删除一张10M的表,空间不会释放。而truncate会。所以当确定表不再使用,应truncate

  5. delete可以回滚rollback,truncate不可以回滚rollback

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/14776.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信