delete:只删除数据,不删除结构。删除的数据存储在系统回滚段中,可以回滚。不会自动提交事务。

在InnoDB中,delete不会真的把数据删除,mysql实际上只是给删除的数据打了个标记为已删除,因此delete删除表中数据时,表文件在磁盘上所占用空间不会变小,存储空间不会被释放,只是把删除的数据行设置为不可见。下次插入数据时,可以重用这部分空间。

删除全表数据,对于MyISAM会立刻释放磁盘空间,InnoDB不会释放磁盘空间。带条件的删除,不管是InnoDB还是MyISAM都不会释放磁盘空间。delete操作以后,使用optimize table table_name会立刻释放磁盘空间。

delete操作时一行一行执行删除的,并同时记录该行的删除操作日志。

truncate:只删除数据,不删除结构。删除的数据操作立即生效,立刻释放磁盘空间,不可以回滚。自动提交事务。

truncate会重置自增的值为1,delete不会,但重启后会被置为1。

drop:删除表结构、约束、触发器、索引。依赖该表的存储过程和函数会保留,状态变为invalid。删除数据立即生效,立刻释放表空间,不能回滚。

速度:drop>truncate>delete

delete、truncate、drop的区别的更多相关文章

  1. truncate delete 与 drop的区别

    一张表几亿条数据.根据task_id删除几千万. delete删除后查询,发现查询速度还是没有变快.explain查看 rows并没有发生变化.查询速度肯定也不会变化.原因? truncate del ...

  2. What is the difference for delete/truncate/drop

    Same: delete/truncate/drop, all of them can support rollback/commit, the sample is as below: begin t ...

  3. truncate与delete 、drop的区别

    注意事项 1.在oracle中数据删除后还能回滚是因为它把原始数据放到了undo表空间. 2.DML语句使用undo表空间,DDL语句不使用undo,  而delete是DML语句,truncate是 ...

  4. delete/truncate/drop table的区别以及锁在这里的角色

    数据库删除语句 Drop/Delete/Truncate比较 Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行). 删除某一行:Delete from 数据表名 ...

  5. truncate 、delete、drop的区别

    TRUNCATE TABLE 在功能上与不带 Where 子句的 Delete 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 Delete 速度快,且使用的系统和事务日志资源 ...

  6. 关于sql 中delete, truncate,drop的理解与总结

    关于文章,本文是在网上查找资料整理而来,方便以后记忆 delete 命令删除的数据可以恢复, truncate 命令删除的数据是不可以恢复的,全删的那种 drop 命令删除的数据不可恢复,连表结构都删 ...

  7. sql中update,alter,modify,delete,drop的区别和使用(整理)(转)

    关于update和alter: 百度知道上关于update和alter有一个很形象的总结: 一个表有很多字段,一个字段里有很多数据. 一个家有很多房间,一个房间里有很多家具. update是用来将衣柜 ...

  8. sql中update,alter,modify,delete,drop的区别和使用(整理)

    关于update和alter: 百度知道上关于update和alter有一个很形象的总结: 一个表有很多字段,一个字段里有很多数据. 一个家有很多房间,一个房间里有很多家具. update是用来将衣柜 ...

  9. Sql语句中的truncate,delete,drop的区别

    相同点: 1.truncate和不带where子句的delete.以及drop都会删除表内的数据. 不同点: 1. truncate 和 delete 只删除数据不删除表的结构(定义) drop 语句 ...

  10. oracle--delete truncate drop的区别

    一.delete 1.delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表 ...

随机推荐

  1. (0319) uvm 库的安装编译:

    https://mp.weixin.qq.com/s/jCSp89UYsEZGRU2BN5IloA

  2. 对比学习InfoNCE loss之“搬砖学习”

    以下链接讲解清晰,供参考 对比学习损失(InfoNCE loss)与交叉熵损失的联系,以及温度系数的作用 - 知乎 (zhihu.com)

  3. cpp chrono basic

    // cpp 20 //c++ - Number of seconds since midnight - Stack Overflow //https://stackoverflow.com/ques ...

  4. 关于github的自动化检测

    github 中的 Some checks were not successful什么意思呢?   在 GitHub 上,当您向存储库提交拉取请求时,如果存在自动化的检查(例如CI/CD)或在 pul ...

  5. 升级安装cuda

    下载驱动: https://www.nvidia.com/Download/Find.aspx 在这里下载并按照指导安装: https://developer.nvidia.com/cuda-down ...

  6. python缩小放大浏览器

    driver.execute_script("document.body.style.zoom='70%'") driver.execute_script("docume ...

  7. HIVE - HIVEQL学习笔记

    Hive Learning HIVEQL和MYSQL最为接近 数据操作 SHOW TABLES IN crm_integration Show tables 'dim_con*' DESCRIBE E ...

  8. about namespace

    once you specify to use a certain namespace such as "{using namespace1;...}", you need to ...

  9. Beginning IOS 7 Development Exploring the IOS SDK - Handling Basic Interface Fun

    Beginning IOS 7 Development Exploring the IOS SDK 目前使用的是Objective-C,用这本书,简单记录一下 第一章,图书简介 第二章,简要介绍使用x ...

  10. Mac下Virtual Box 6.1 Host-Only 网络配置 没有虚拟网卡

    Virtual Box 6.1 mac下 Virtual Box Host-Only 没有 vboxnet0 点击 tools -> 右边的三杆,点 Network 可以添加,修改,删除  虚拟 ...