MYSQL删除操作、Drop用法有什么区别,该如何合理使用

xzdxmynet 发布于 2024-03-18 阅读(45)

今天小编就来整理一下MYSQL删除操作和Drop用法的区别,以及如何合理使用。 希望对大家有帮助!

1、执行速度对比

、、、Drop关键字都可以删除数据。

掉落>>

2. 原则 2.1

属于数据库DML操作语言。 执行时只会删除数据表中的记录、执行事务、触发触发器。

在数据库引擎中,执行该操作只会将已删除的记录标记为已删除,并不会真正删除数据。 它只会将删除的数据记录设置为不可见,不会释放磁盘空间。 如果插入新数据,这部分可以被覆盖。 空间。

如果启用了事务并执行了操作,则要删除的数据会先缓存在缓存中,直到事务发生后才会生效。

如果没有查询条件,表中的所有数据都会被删除,引擎会立即释放磁盘空间。 如果有查询条件,则不会释放磁盘空间。 如果可以执行该表,磁盘空间将立即释放。 建议如果需要释放存储空间,可以执行后再执行建表语句来清理磁盘空间。

-- 查询数据库test对应的表t_user 占用的磁盘空间
select concat(round(sum(DATA_LENGTH/1024/1024),2),'M') as table_size 
from information_schema.tables 
where table_schema='test' AND table_name='t_user';

注意:操作是逐行进行的,每行的删除操作日志同时记录在redo和undo表空间中,以方便rollback()和redo操作,因此产生的大量操作日志也会占用磁盘空间。

2.2

它是一种数据库DDL定义语言,不受事务影响,不会被触发。 操作将立即生效,删除的数据将无法找回。

执行表将立即释放磁盘空间,无论是否。

您可以快速清理桌子。 并重置自动递增值。 不同类型的数据存储引擎存在差异,如下:

:将(自动递增序列)值重置为1。然后表保留。

:该值将重置为1。后表保留。 但如果在制作全表后重新启动MySQL,则重新启动后它将被设置为1。

描述:表本身无法持久保存。 该表仍然保存在内存中,但是重启后就找不到了,只能从1开始。事实上,重启后就会从1+MAX() FROM t开始。

使用时最好对表进行备份,避免出现不可逆转的情况。

2.3 掉落

drop属于数据库DDL定义语言,与. 执行后立即生效且不可恢复。

drop table执行成功后,MyISM和MyISM都会立即释放磁盘空间,并删除依赖于数据表的约束()、触发器()和索引(index); 依赖于该表的存储过程/函数将被保留。 但它会变得无效。

总结

在工作中删除数据库时一定要小心。 建议您每次删除数据时最好使用数据表备份。 这将大大减少你的删除跑掉的机会。 很多时候,不要太相信自己的动手能力。 老虎还在睡觉,万一手滑了怎么办? 尽可能养成良好的数据库运维习惯,这样你就会避免挫折,让你的职业生涯走得更顺利。

MYSQL笔记:删除操作、Drop使用对比

标签:  mysql 数据库 mysql数据库 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。