ORACLE DELETE & TRUNCATE 区别
用法: delete from tablename; truncate table tablename; 两者 相同点: delete、truncate都能起到清除表数据功能; 两者 不同点: delete语句用于表、视图等;delete可以指定单条数据删除;delete属于DML操纵语言; truncate只能用于表;truncate删除整表
用法:
delete from tablename;
truncate table tablename;
两者相同点:
delete、truncate都能起到清除表数据功能;
两者不同点:
delete语句用于表、视图等;delete可以指定单条数据删除;delete属于DML操纵语言;
truncate只能用于表;truncate删除整表数据;truncate属于DDL定义语言;
也就是说delete删除之后数据可以在回滚,使用rollback;而truncate删除之后数据时不可恢复的。
执行效率:
truncate语句删除效率远高于delete语句。
两者执行原理:
delete:删除一条数据之前首先copy这条数据到撤销段,删除几百几千万条都先要copy到撤销段,有人就问了,删除之前为什么都要copy到撤销段里面,别忘了,delete删除之后还可以再使用rollback恢复的,恢复的数据就要根据日志文件到撤销段里找到再回复。中间多一种copy操作,增加额外的一种安全保证,损失点效率是肯定的;
而
truncate语句直接进行删除,无须copy到撤销段,效率的提升是显著的,但带来的风险也是存在的,如误删除了数据,该删除数据是不可恢复的因为他是DDL,后台隐式提交事务。用时需谨慎。
上一篇: PHP中PDO的事务处理分析,phppdo事务处理
下一篇: php加快 PHP APC 浅析
推荐阅读
-
ORACLE DELETE & TRUNCATE 区别
-
mysql 清空表 Truncate及delete区别
-
小议truncate、drop、delete的区别
-
mysql 清空表 Truncate及delete区别
-
Oracle 中 DELETE 与 TRUNCATE 语句的区别及优缺点
-
Oracle的drop、delete、truncate区别
-
drop,delete与truncate的区别
-
Oracle数据库删除数据Delete语句和Truncate语句的对比
-
Oracle数据库删除数据Delete语句和Truncate语句的对比
-
ORACLE DELETE & TRUNCATE 区别