delete和truncate区别

2018-06-17 23:32:41来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

 相同之处:truncate在功能上与不带WHERE子句的delete 语句相同:二者均删除表中的全部行。小心使用truncate,删除后就没有了

1、delete : 删除"表格记录"会把操作记录在日志中,可以通过事务回滚来恢复删除的数据。

   truncate :删除"表格记录"不可恢复 。

 

2、delete :每次删除一行,并在事务日志中为所删除的每行记录一项。

    truncate  :过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

  所以truncate 比delete速度快

3、 delete:删除内容,不删除定义,释放空间
  truncate :删除内容,不删除定义,不释放空间。

 

4、delete:语句不影响表所占用的extent, 高水线(high w2atermark)保持原位置不动 
    truncate: 语句缺省情况下将空间释放到 minextents个 extent,除非使用reuse  storage;   truncate会将高水线复位(回到最开始).

 

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

想删除表,当然用drop

想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:3org.springframework.beans.factory.BeanDefinitionStoreExcept

下一篇:JDBC URL格式定制