zoukankan      html  css  js  c++  java
  • truncate,delete,drop的异同点

      源:网海拾贝




    truncate,delete,drop的异同点  
    看重:这里说的delete是指不带where子句的delete语句
      
    相反点:truncate和不带where子句的delete, 以及drop城市删除表内的数据  
    差别点:  
    1. truncate和 delete只删除数据不删除表的机关(界说)  
         drop语句将删除表的机关被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保管,但是变为invalid形状.  
    2.delete语句是dml,这个操纵会放到rollback segement中,事情提交之后才见效;若是有照应的trigger,实施的时间将被触发.  
        truncate,drop是ddl, 操纵当即见效,原数据不放到rollback segment中,不能回滚. 操纵不触发trigger.  
    3.delete语句不影响表所占用的extent, 高水线(high watermark)坚持原地位不动  
       显然drop语句将表所占用的空间一切释放  
       truncate 语句缺省情形下将空间释放到 minextents个 extent,除非应用reuse storage;   truncate会将高水线复位(回到最初步).  
    4.速率,一样平居来说: drop> truncate > delete  
    5.宁静性:警醒应用drop 和truncate,尤其没有备份的时间.否则哭都来不及  
    应用上,想删除部分数据行用delete,看重带上where子句. 回滚段要饶富大.  
    想删除表,虽然用drop  
    想保管表而将所有数据删除. 若是和事情有关,用truncate即可. 若是和事情有关,或者想触发trigger,还是用delete.  
    若是是清算表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/拔出数据




    版权声明: 原创作品,容许转载,转载时请务必以超链接方式标明文章 原始来因 、作者信息和本声明。否则将追究法令责任。

  • 相关阅读:
    053(二十五)
    053(二十四)
    053(二十三)
    053(二十二)
    053(二十一)
    053(二十)
    053(十九)
    053(十八)
    053(十七)
    单例设计模式
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975926.html
Copyright © 2011-2022 走看看