MySQL数据库:drop、truncate、delete的区别

MySQL数据库:drop、truncate、delete的区别

1、删除速度:drop>truncate>delete;

2、删除方式:

  • (1)执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在日志文件中。delete可根据where条件删除表中指定的数据,如果不指定where子句,则跟truncate一样,可以删除表中所有记录。
  • (2)truncate通过释放存储表数据所用的页来删除数据,一次性删除表中所有记录,不会将删除的数据记录在日志文件中,只在日志文件中记录页的释放,使用的系统和事务日志资源少,所以执行速度比delete快。对于外键约束引用的表,不能使用 truncate table,而应使用不带 where 子句的 delete 语句。
  • (3)drop则删除整个表的结构和数据,但是被依赖的约束、触发器、索引、依赖于该表的存储过程、函数将被保留,但其状态会变为invalid

3、删除后,表和索引所占空间:

  • (1)delete操作不会减少表或索引所占用的空间;
  • (2)当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,但表结构及其列、约束、索引的定义等保持不变。
  • (3)drop语句将表所占用的空间全释放掉。

4、提交方式:delete是DML,需要手动提交操作才能生效,可以回滚,可以触发触发器;truncate和drop是DDL,会隐式提交,不能回滚,不会触发触发器。

5、使用场景:

  • (1)如果想删除表,当然用drop; 
  • (2)如果想保留表而将所有数据删除,而且和事务无关,用truncate即可;
  • (3)如果和事务有关,或者想触发trigger,还是用delete;

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100076.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Base64转换成图片[通俗易懂]

    Base64转换成图片[通俗易懂]2019独角兽企业重金招聘Python工程师标准>>>…

    2022年5月22日
  • JSP动作–JSP有三种凝视方式

    JSP动作–JSP有三种凝视方式

    2021年11月13日
  • 扫描系统漏洞的工具_免费漏洞扫描工具

    扫描系统漏洞的工具_免费漏洞扫描工具端口扫描之王NMAPNmap是一款非常强大的实用工具包含的功能如下:扫描到的端口状态:TCP扫描(-sT):这是一种最为普通的扫描方法,这种扫描方法的特点是:扫描的速度快,准确性高,对操作者没有权限上的要求,但是容易被防火墙和IDS(防入侵系统)发现运行的原理:通过建立TCP的三次握手连接来进行信息的传递SYN扫描(-sS):这是一种秘密的扫描方式之一,因为在SYN扫描中Client端和Server端没有形成3次握手,所以没有建立一个正常的TCP连接,因此不被防火墙和日志所记录…

    2022年9月12日
  • 【C语言】的%*d、%.*s等详解:「建议收藏」

    目录:0.前言【精简版】:时间少的看这里:时间长的可以看我下面的啰嗦:1.必备入门小知识:2.正题1:scanf(1)%*d被枪毙了:(2)【%.*d】的队友被枪毙了:2.正题2:printf就不讲了,前面的【前言】似乎讲得很明白了吧。0.前言【精简版】:其实网上也有很多关于这方面的解释,但是总会让新手甚至小老手有些迷茫,比如网上有一种解释就说:忽略……你忽略啥啊你…时间少的看这里:<1>scanf:注意:在scanf里只有%*d和%.*d有意义,其他的%*f,%

    2022年4月11日
  • 多目标优化算法(一)NSGA-Ⅱ(NSGA2)[通俗易懂]

    多目标优化算法(一)NSGA-Ⅱ0.前言这个算法是本人接触科研学习实现的第一个算法,因此想在这里和大家分享一下心得。1.算法简介NSGA-Ⅱ算法,即带有精英保留策略的快速非支配多目标优化算法,是一种基于Pareto最优解的多目标优化算法。1.1Pareto支配关系以及Pareto等级Pareto支配关系:对于最小化多目标优化问题,对于n个目标分量fi(x),i=1…nf_i(…

    2022年4月3日
  • Conda源_conda配置清华源

    Conda源_conda配置清华源conda查看源的信息:condaconfig–show-sources查看源路径:condaconfig–setshow_channel_urls_yesconda添加源:condaconfig–addchannelsXXXXXXXXXXXXXX例如:(condaconfig–addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/condaconfig–addcha

    2022年10月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号