首先truncate是DDL语句,而delete是DML语句。

truncate的删除比delete快很多,尤其是表数据量大的时候,原因是truncate执行过程中不产生undo,所以truncate也无法再回滚。而delete在commit之前肯定是可以回滚的。

truncate的另一个特性是会将表的高水位线重新归零,delete不会这样做,这也是truncate的一个优点,全表扫描仅搜索位于高水位线之下的存储块中的数据行。这对于全表扫描性能具有很大影响。

truncate有一个副作用,如果一张表定义了主键,并且这个主键是其子表的外键,那么不能truncate这张表,即使子表没有任何数据。这种情况下试图去truncate会报:OAR-02266。原因是truncate无法回滚,防止有人并发往子表插入数据。而delete是允许这样做的,因为delete会生成重做信息,具有读一致性,并且能够回滚。

最后还有一种删除全表数据的方式:drop表并且重建,这种情况一般不会在生产环境做,多用于开发测试阶段。

转载于:https://www.cnblogs.com/attlia/p/4104234.html

Oracle truncate和delete的区别相关推荐

  1. 深度分析DROP,TRUNCATE与DELETE的区别【我的数据库之路系列】

    深度分析DROP,TRUNCATE与DELETE的区别[我的数据库之路系列] 转载自:http://hi.baidu.com/bjn_wuming/blog/item/8b27a9af36ef26f6 ...

  2. MYSQL基本知识:TRUNCATE和DELETE的区别

    目录 1.条件删除 2. 事务回滚 3. 清理速度 4. 高水位重置 MYSQL中TRUNCATE和DELETE都能够清理表中的数据,那它们的基本区别是什么呢? 1.条件删除 这个比较好理解,因为DE ...

  3. Mysql之drop、truncate和delete的区别

    一.delete 1.delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表 ...

  4. drop、truncate和delete的区别

    drop.truncate和delete的区别 (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TA ...

  5. Oracle truncate、 delete、 drop区别

    相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 2.drop.truncate都是DDL语句(数据定义语言),执行后会自动提交. 不同点: 1. t ...

  6. mysql truncate drop_详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始 | 很文博客...

    不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该 ...

  7. 详解MySQL中DROP,TRUNCATE 和DELETE的区别

    注意:这里说的delete是指不带where子句的delete语句 相同点: truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和  ...

  8. [转载]drop、truncate和delete的区别

    原文出处:http://blog.csdn.net/ws0513/article/details/49980547 (1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作 ...

  9. MySQL-删除表(drop、truncate、delete)区别

    删除表 --xx是数据表的名字 drop table xx 作用:删除内容和定义,释放空间.简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表. drop table test,就是把 ...

最新文章

  1. 英语口语week 14 Thursday
  2. 10 种保护 Spring Boot 应用的绝佳方法 1
  3. 推荐一些vue.js热门好用的框架组件
  4. 前端基础-html-路径的介绍
  5. linux下打开、关闭tomcat,实时查看tomcat运行日志
  6. omv搭建php,家用NAS系统openmediavault插件开发
  7. SW2017学习笔记(一)基本的工作界面及鼠标操作
  8. 功能测试Ⅱ——测试用例设计方法
  9. SAP中销售价格导致的无法发货的实例分析
  10. arcengine cliasic code(转)基于ArcGIS Engine + C#实现用户自定义动态电力符号
  11. 第二届春回燕归 浙籍精英峰会见闻
  12. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 个人笔记 题解
  13. java 下载另存为_java中如何实现点击下载出现另存为的对话框
  14. ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server
  15. 记一次网易七鱼云客服开发记录
  16. 【Stephen Boyd】【2009】凸优化
  17. 机器人 抓取 Grasp Pose Detection (GPD) grasp类型转ROS的标准pose
  18. UVALive 4950 Selling Land
  19. 发布Android应用程序过程
  20. latex编译pdf winedt_LaTeX-WinEdt 编辑器和 PDF 文件的 Acrobat 11 程序关联

热门文章

  1. 主从复制中忽略库的参数
  2. 安全强化linux-SELinux
  3. win 7 ×××自动拨号设置
  4. LGWR和DBWn的触发条件
  5. 在.NET中使用Speex -- 音频数据编解码
  6. 虚拟键码对照表与ASCII对照表的整理
  7. 在web应用程序中使用MemcachedClient
  8. AUCAD自定义[2006.9.22]
  9. 更换高端游戏计算机故障电源,加内存条后电脑重启的解决办法游戏设备故障解决分享!...
  10. emacs 替换模式_如何使用Emacs Org模式撰写博客