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. Eclipse 获取maven项目出现问题汇总

    1.errors occurred during the build,可以试试加上下图的配置,路径根据自己jak安装路径去修改

  2. 1.mysql创建索引

    -- 创建一个普通索引(方式①)create index 索引名 ON 表名 (列名(索引键长度) [ASC|DESC]);-- 创建一个普通索引(方式②)alter table 表名 add ind ...

  3. usb 2.0的状态跳转图

  4. Element--->>>最新骨架屏Skeleton使用

    首先,Element在最近的一次更新中(时间:2021-06-29) 新增了Skeleton骨架屏组件.Empty空状态组件. 那么在使用其自带组件Skeleton时,应将按照如下步骤使用: Ⅰ:如果 ...

  5. Shiro 身份认证绕过漏洞 CVE-2022-32532

    前言 Apache Shiro 是一个强大且易用的 Java 安全框架,通过它可以执行身份验证.授权.密码和会话管理.使用 Shiro 的易用 API,您可以快速.轻松地保护任何应用程序 -- 从最小 ...

  6. wpf dataGrid 获取单元格,并对单元格中的对象操作

    先上图: 要求:对第一行的"选项内容举例..."的控件进行隐藏,如下: 前端代码: <Window x:Class="DataGridPractice.MainWi ...

  7. File.createTempFile()

    File.createTempFile()的两个参数,是前缀和后缀,临时文件的文件名,会在前缀和后缀中各截取一部分,再拼接上随机数进行生成: 推荐手动指定目录,尽量指定到项目路径下,默认的磁盘位置,有 ...

  8. adb命令之monkey使用

    一.Monkey介绍Monkey是Android中的一个命令行工具,可在模拟器或实际设备中运行.通过向系统发送伪随机的用户事件流(例如按键.触摸屏.手势操作等),来实现对开发中的应用程序进行压力测试, ...

  9. 移动端wifi测试点总结

    1.WiFi功能测试: 验证WiFi模块设置(如:添加AP.静态IP及动态IP的设置等)的相应功能是否正常: 2.WiFi特性专项测试: 1)WiFi打开速度或搜索速度的测试:验证WiFi,WiFi打 ...

  10. Flutter statecontroller.update(MaterialState.disabled,false)无效

    因为中间会调用 void initStatesController() { if (widget.statesController == null) { internalStatesControlle ...