gpt4 book ai didi

详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 35 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

不同点

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,再重新导入/插入数据/ 。

实际应用:

deletefromtable;//删除所有数据 。

truncatetable;//将auto_increatement调制从0开始,实际就是从1开始 。

最后此篇关于详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始的文章就讲到这里了,如果你想了解更多关于详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com