当前位置: 首页 > news >正文

MySQL:drop、delete与truncate区别

一、用法不同

1、drop(丢弃数据): drop table 表名 ,直接将表都删除掉,在删除表的时候使用。

2、truncate (清空数据) : truncate table 表名 ,只删除表中的数据,再插入数据的时候自增长 id 又从 1 开始,在清空表中数据的时候使用。

3、delete(删除数据) : delete from 表名 where 列名=值,删除某一行的数据,如果不加 where 子句和truncate table 表名作用类似。

truncate 和不带 where 子句的 delete、以及 drop 都会删除表内的数据,但是 truncate 和 delete 只删除数据不删除表的结构(定义),执行 drop 语句,此表的结构也会删除,也就是执行 drop 之后对应的表不复存在。

二、属于不同的数据库语言

truncate 和 drop 属于 DDL(数据定义语言)语句,操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。而 delete 语句是 DML (数据库操作语言)语句,这个操作会放到 rollback segement 中,事务提交之后才生效。

DML 语句和 DDL 语句区别:
(1)DML 是数据库操作语言(Data Manipulation Language)的缩写,是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select),是开发人员日常使用最频繁的操作。
(2)DDL (Data Definition Language)是数据定义语言的缩写,简单来说,就是对数据库内部的对象进行创建、删除、修改的操作语言。它和 DML 语言的最大区别是DML 只是对表内部数据的操作,而不涉及到表的定义、结构的修改,更不会涉及到其他对象。DDL语句更多的被数据库管理员(DBA)所使用,一般的开发人员很少使用。
补充:由于select不会对表进行破坏,所以有的地方也会把select单独区分开叫做数据库查询语言DQL(Data Query Language)

三、执行速度不同

一般来说:drop > truncate > delete。

1、delete命令执行的时候会产生数据库的binlog日志,而日志记录是需要消耗时间的,但是也有个好处方便数据回滚恢复。

2、truncate命令执行的时候不会产生数据库日志,因此比delete要快。除此之外,还会把表的自增值重置和索引恢复到初始大小等。

3、drop命令会把表占用的空间全部释放掉。

http://www.lryc.cn/news/256679.html

相关文章:

  • 2024年顶级的9个 Android 数据恢复工具(免费和付费)
  • c# Aspose.Cells 导出Excel表格 使用随记
  • SAP UI5 walkthrough step3 Controls
  • 【分布式微服务专题】从单体到分布式(一、SpringCloud项目初步升级)
  • python安装与工具PyCharm
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK将相机图像高速保存到电脑内存(C#)
  • iOS 防截屏方法(一)
  • 【SpringBoot篇】5种类型参数传递json数据传参的操作
  • Mac系统升级node.js版本和npm版本
  • 风力发电对讲 IP语音对讲终端IP安防一键呼叫对讲 医院对讲终端SV-6005网络音频终端
  • 智能优化算法应用:基于蜉蝣算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • pymysql报错: unable to rollback、Already closed
  • [Linux] Web基础知识与http协议
  • 2020年第九届数学建模国际赛小美赛B题血氧饱和度的变异性解题全过程文档及程序
  • 【Flink on k8s】- 11 - 使用 Flink kubernetes operator 运行 Flink 作业
  • 【Linux】系统初识之冯诺依曼体系结构与操作系统
  • 【PyTorch】模型训练过程优化分析
  • GO -- 设计模式
  • angular状态管理方案(ngrx)
  • EPICS modbus 模块数字量读写练习
  • 万界星空科技低代码平台:搭建MES系统的优势
  • 【ArcGIS微课1000例】0078:创建点、线、面数据的最小几何边界
  • 五花八门客户问题(BUG) - 数据库索引损坏
  • mysql select count 非常慢
  • Tomcat管理功能使用
  • kyuubi整合flink yarn session mode
  • err_connect_length_mismatch错误
  • dva的学习总结
  • Docker部署.NET6项目
  • Pandas 打开有密码的Excel