今天小编就来整理一下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使用对比
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。