千家信息网

mysql中drop、truncate与delete的区别是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"mysql中drop、truncate与delete的区别是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大
千家信息网最后更新 2026年11月02日mysql中drop、truncate与delete的区别是什么

本篇内容介绍了"mysql中drop、truncate与delete的区别是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. drop:删除数据库

  • drop语句将表所占用的空间全释放掉。

  • drop > truncate > delete

方式1:如果要删除的数据库存在,则删除成功。如果不存在,则报错

DROP DATABASE mytest1;

方式2:推荐。 如果要删除的数据库存在,则删除成功。如果不存在,则默默结束,不会报错。

DROP DATABASE IF EXISTS mytest1;     

2. 对比 TRUNCATE TABLE 和 DELETE FROM

相同点:都可以实现对表中所有数据的删除,同时保留表结构。

不同点:

  • TRUNCATE TABLE:一旦执行此操作,表数据全部清除。同时,数据是不可以回滚的。

  • DELETE FROM:一旦执行此操作,表数据可以全部清除(不带WHERE)。同时,数据是可以实现回滚的。

3. DDL 和 DML 的说明

① DDL(CREATE 、 DROP 、 ALTER、TRUNCATE 等)的操作一旦执行,就不可回滚。指令SET autocommit = FALSE对DDL操作失效。(因为在执行完DDL操作之后,一定会执行一次COMMIT。而此COMMIT操作不受 SETautocommit = FALSE影响。)

② DML(INSERT 、 DELETE 、 UPDATE 、 SELECT等)的操作默认情况,一旦执行,也是不可回滚的。但是,如果在执行DML之前,执行了 SET autocommit = FALSE,则执行的DML操作就可以实现回滚。

演示1:DELETE FROM 删除数据后,恢复数据

SET autocommit = FALSE;

DELETE FROM myemp3;

查询后数据为空

回滚数据

再次查询,可以看到恢复数据了

演示2:TRUNCATE TABLE,不能回滚数据操作

SET autocommit = FALSE;

TRUNCATE TABLE myemp3;

清空了数据

回滚事物

rollback

查询后数据并没有恢复

4.效率对比

在速度上,一般来说,drop> truncate > delete。

  • 如果想删除部分数据用delete,注意带上where子句,回滚段要足够大;如果想删除表,当然用drop;

  • 如果想保留表而将所有数据删除,如果和事务无关(不能回滚),用truncate即可;

  • 如果和事务有关,或者想触发trigger,还是用delete;

  • 如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。

  • truncate与drop是DDL语句,执行后无法回滚;delete是DML语句,可回滚。

  • truncate只能作用于表;delete,drop可作用于表、视图等。

  • truncate会清空表中的所有行,但表结构及其约束、索引等保持不变;drop会删除表的结构及其所依赖的约束、索引等。

  • truncate会重置表的自增值;delete不会。

  • truncate不会激活与表有关的删除触发器;delete可以。

  • truncate后会使表和索引所占用的空间会恢复到初始大小;delete操作不会减少表或索引所占用的空间,drop语句将表所占用的空间全释放掉。

"mysql中drop、truncate与delete的区别是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 空间 索引 语句 同时 数据库 结构 有关 查询 成功 事务 作用 内容 情况 方式 更多 知识 演示 不同 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网政务服务 智能科技公司是互联网公司吗 互联网科技排名 天津摩尔互联网科技 撒么互联网科技公司 卓越科技互联网 招聘 互联网公司会议桌创意科技软装饰 深圳市运趣互联网科技有限公司 隆华科技工业互联网 北京大学互联网科技怎么样 阿里巴巴算科技企业还是互联网 承德科技产业互联网发展 团飞科技与伯堂互联网服务平台 科技类公司包括互联网吗 云南省自由互联网科技有限公司 银川新华互联网科技学校是国营吗 兰石爱特工业互联网科技分公司 互联网金融金融科技 前海云享互联网科技 山东亿川互联网科技有限责任公司 互联网金融 金融科技 礼当家互联网科技 互联网科技股票 广州宏创互联网科技 互联网科技公司做什么 重庆科技学院互联网 互联网科技公司需要的职位 深圳艾果互联网通讯科技 科技互联网海报 互联网界的黑科技
0