1.相同点:truncate和delete只删除数据不删除表的结构
2.不同点:truncate、drop是数据库定义语言,操作立即生效,元数据不会放到rollback segement中,不能回滚,操作不触发trigger。

delete是数据库操作语言dml,这个操作会放到rollback segement中,事务提交后在生效;如果有相应的trigger,执行的时候将被触发。delete语句不影响表所占用的extent(区)

truncate语句缺省的情况下将空间释放到min extents个extent,除非使用reuse storage;
对于使用truncate和delete性能影响问题:
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句

truncate和delete命令的优缺点和原理解析,适用场合的更多相关文章

  1. 什么是Rollback Segment(已truncate和delete 命令为例)?

    Rollback Segments是在你数据库中的一些存储空间,它用来临时的保存当数据库数据发生改变时的先前值,Rollback Segment主要有两个目的: 1. 如果因为某种原因或者其他用用户想 ...

  2. git的核心命令使用和底层原理解析

    文章目录: GIT体系概述 GIT 核心命令使用 GIT 底层原理 一.GIT体系概述 GIT 与 svn 主要区别: 存储方式不一样 使用方式不一样 管理模式不一样 1.存储方式区别 GIT把内容按 ...

  3. Oracle数据库中truncate命令和delete命令的区别

    首先讲一下,truncate命令: 语法:TRUNCATE  TABLE  table; 表格里的数据被清空,存储空间被释放. 运行后会自动提交,包括之前其它未提交的会话,因而一旦清空无法回退. 只有 ...

  4. sql语句中----删除表数据drop、truncate和delete的用法

    sql语句中----删除表数据drop.truncate和delete的用法 --drop drop table  tb   --tb表示数据表的名字,下同 删除内容和定义,释放空间.简单来说就是把整 ...

  5. [转]mysql drop、truncate和delete比较

    一.drop table tb drop将表格直接删除,没有办法找回. 立刻释放磁盘空间 ,不管是 Innodb和MyISAM . 二.truncate (table) tb 该命令可以清空一个表里的 ...

  6. 删除表数据drop、truncate和delete的用法

    说到删除表数据的关键字,大家记得最多的可能就是delete了 然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了 现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的 老大- ...

  7. sql server 中删除表中数据truncate和delete的区别(转载自.net学习网)

    我们都知道truncate table可以用来删除整个表的内容,它与delete后面不跟where条件的效果是一样.但除此之外,我们还清楚它们之间有其它的区别吗?本章我们将一起讨论truncate与d ...

  8. mysql 在row模式下truncate 与 delete 二进制日志记录的差异

    二进行日志的格式为row mysql> show variables like 'binlog_format'; +---------------+-------+ | Variable_nam ...

  9. truncate与delete 、drop的区别

    注意事项 1.在oracle中数据删除后还能回滚是因为它把原始数据放到了undo表空间. 2.DML语句使用undo表空间,DDL语句不使用undo,  而delete是DML语句,truncate是 ...

随机推荐

  1. Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty 报错

    项目中遇到的获取https的数据接口数据时,Unexpected error: java.security.InvalidAlgorithmParameterException: the trustA ...

  2. 取消IDEA默认打开最近的项目(设置打开选择创建页面)

    Ctrl + Shift + s 打开设置界面 选择Appearance&Behavior 找到System Settings 将Reopen last project on startup ...

  3. Python re.findall函数不能匹配但是notepad++能匹配

    我使用同样的表达式匹配同样的网页源码,在notepad++里面不能直接使用,需要将内容都弄到同一行中. 但是我使用 requests.get(self.url).content.decode('UTF ...

  4. sha256_transform

    DECLSPEC void sha256_transform (const u32 *w0, const u32 *w1, const u32 *w2, const u32 *w3, u32 *dig ...

  5. c# WinForm 文本输入对话框

    这种功能为什么不向MessageBox一样自带,还得自己写~~ 代码: public InputBox(string label) { InitializeComponent(); label1.Te ...

  6. Python来袭,教你用Neo4j构建“复联4”人物关系图谱!

    来源商业新知网,原标题:Python来袭,教你用Neo4j构建“复联4”人物关系图谱!没有剧透! 复仇者联盟 之绝对不剧透 漫威英雄们为了不让自己剧透也是使出了浑身解数.在洛杉矶全球首映礼上记者费尽心 ...

  7. 爬虫之进阶 基于twisted实现自制简易scrapy框架(便于对scrapy源码的理解)

    1.调度器 class Scheduler(object): """调度器""" def __init__(self, engine): & ...

  8. webpack 4.0配置

    webpack一般是本地安装,一般安装webpack webpack-cli,一般是开发依赖上线的时候不需要打包通常npm install webpack webpack-cli  -D安装 安装的时 ...

  9. white-space:pre-wrap和word-break:break-all;

    最近碰到了两个css属性,在此记录一下: 1.white-space :nomal规定文本中的文字空格和换行的情况 normal:默认.空白会被浏览器忽略. pre:空白会被浏览器保留.其行为方式类似 ...

  10. Mysql数据库左外连接,右外连接,模糊查询

    内连接,左外连接,右外连接都是数据库的常用连接与使用手段 内连接 select * from assets_car c inner join category c on a.id = c.id; 左外 ...