truncate,delete,drop的异同点是什么


本篇文章给大家分享的是有关truncate,delete,drop的异同点是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。注意:这里说的delete是指不带where子句的delete语句
相同点
truncate和不带where子句的delete,以及drop都会删除表内的数据
不同点:
1.truncate和delete只删除数据不删除表的结构(定义)
drop语句将删除表的结构被依赖的约束(constrain),触开发云主机域名发器(trigger),索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态.
2.delete语句是dml,这个操作会放到rollbacksegement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.
truncate,drop是ddl,操作立即生效,原数据不放到rollbacksegment中,不能回滚.操作不触发trigger.
3.delete语句不影响表所占用的extent,高水线(highwatermark)保持原位置不动
显然drop语句将表所占用的空间全部释放
truncate语句缺省情况下见空间释放到minextents个extent,除非使用reusestorage;truncate会将高水线复位(回到最开始).
4.速度,一般来说:drop>;truncate>;delete
5.安全性:小心使用drop和truncate,尤其没有备份的时候.否则哭都来不及
使用上,想删除部分数据行用delete,注意带上where子句.回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除.如果和事务无关,用truncate即可.如果和事务有关,或者想触发trigger,还是用delete.
如果是整理表内部的碎片,可以用truncate跟上reusestroage,再重新导入/插入数据
以上就是truncate,delete,drop的异同点是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注开发云行业资讯频道。

相关推荐: 边缘计算的爆发为安防全产业带来了怎样的变化?

随着物联网的快速发展以及数据处理 2.0 时代的来临,边缘计算很快成为了广受追捧的热门技术。IDC 数据显示,未来超过 50% 的数据需要在网络边缘侧分析、处理和存储,边缘计算市场规模将超万亿,成为与云计算平分秋色的新兴市场。
亚马逊、阿里、华为、微软等巨头的…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/16 18:42
下一篇 05/16 18:48

相关推荐