MySQL   发布时间:2022-05-15  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了truncate与delete的区别大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

转自:nofollow">http://blog.163.com/jun_ai_ni_1314/blog/static/1378480552010426112233123/

:rgb(85,73,15);font-family:'Hiragino Sans GB W3','Hiragino Sans GB',Arial,Helvetica,simsun,u5b8bu4f53;font-size:16px;">truncate table命令将快速删除数据表中的所有记录,但保留数据表结构。这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而Truncate命令删除的数据是不可以恢复的 

一个测试 
一个带有自增字段的表,加入100万数据 
runcATE和deletE删除全部数据 


runcATE TABLE是非常快的 
runcATE之后的自增字段从头开始计数了,而deletE的仍保留原来的最大数值 



runcate和不带where子句的delete,以及drop都会删除表内的数据 

runcate和 delete只删除数据不删除表的结构(定义) 
删除表的结构被依赖的约束(consTrain),触发器(trigger),索引(indeX); 依赖于该表的存储过程/函数将保留,但是变为invalid状态. 

runcate,drop是ddl,操作立即生效,原数据不放到rollBACk segment中,不能回滚. 操作不触发trigger. 


runcate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;   truncate会将高水线复位(回到最开始). 
; truncate >; delet
runcate,尤其没有备份的时候.否则哭都来不及 
删除部分数据行用delete,注意带上where子句. 回滚段要足够大. 
删除表,当然用drop 
删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete. 
runcate跟上reuse stroage,再重新导入/插入数据 

大佬总结

以上是大佬教程为你收集整理的truncate与delete的区别全部内容,希望文章能够帮你解决truncate与delete的区别所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: