邀朋友种豆,一起分享吧
喜欢购买正品行货?那就去品牌街

SQL中Truncate与Delete的区别

来自:种豆 时间:2017-12-29 阅读:632次 原文链接
truncate与delete是两种删除数据库记录的方法,但两者有较大区别。

truncate与delete的区别一

truncate是ddl语言;语法是 TRUNCATE TABLE TableNamedelete是dml语言;语法是 DELETE TableName;后面可以跟where条件删除某些指定记录。

truncate与delete的区别二

truncate在删除记录时是对一个页操作,在日志中,仅仅记录释放页面的这个动作,而不记录每一行。删除数据不会计入日志delete 每次删除一行记录,并且把记录都存进日志文件

truncate与delete的区别三

truncate删除速度快;操作不触发Trigger,会保留表结构、列、约束、索引等delete删除速度慢

truncate与delete的区别四

truncate删除记录不能rollback,即不能恢复truncate删除记录可以rollback,即可以恢复

truncate与delete的区别五

Truncate比Delete使用锁少TRUNCATE操作由于是对页操作,所以只需要申请页锁或者表锁。DELETE是一行一行删除,需要对处理的行进行加锁,而且是行锁。

TRUNCATE和DELETE有以下几点区别

1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。3、TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。4、TRUNCATE不能触发任何DELETE触发器。5、不能授予任何人清空他人的表的权限。6、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。7、不能清空父表。
 
关于种豆 ┊ 联系我们 ┊ 免责声明 ┊ 发帖须知 ┊ 请提意见 ┊ 站点地图
本站为个人爱好兴趣分享网站,不代表本人观点,如有侵权请联系QQ3033380280进行处理
sowsoy.com 版权所有 Copyright©2010-2021 备案号:蜀ICP备2020025376号-3
Email:sowsoy#hotmail.com