TRUNCATE、DELETE、DROP 的区别?

简介: MySQL中DELETE、TRUNCATE和DROP均用于删除数据,但作用不同:DELETE删除行记录,支持WHERE条件和事务回滚,速度慢;TRUNCATE快速清空表并重置自增ID,不可回滚;DROP则彻底删除表结构与数据,操作不可逆。三者在日志记录、速度及功能上有显著差异。

MySQL 数据库中的 TRUNCATE、DELETE 和 DROP 是用于删除数据的三个不同命令。

DELETE 用于删除表中的一行或多行记录,它可以与 WHERE 子句一起使用来指定要删除的记录。

TRUNCATE 用于快速删除表中的所有记录,并重置任何自增的计数器(如自增的主键)。

DROP 用于删除整个表结构及其数据。

这三个操作中,DROP 是最彻底的,它不仅删除表中的数据,还删除表结构,并且操作不可撤销。

这三个操作中,DELETE 是最慢的,因为它在操作过程中会记录 binlog,并且它是在事务中的,可以做回滚。

这三个操作中,DELETE 可以和 WHERE 一起用,可以设置筛选条件,而 DROP 和 TRUNCATE 不可以增加筛选条件。

这三个操作中,TRUNCATE 和 DROP 是 DDL(数据定义语言)操作,而 DELETE 是 DML(数据操作语言)操作

这三个操作中,DELETE 操作删除表中记录后,自增 ID 不会重置,而 TRUNCATE 操作则会重新从 1 开始自增。

操作类型 删除内容 记录日志 支持回滚 支持 WHERE 速度 主键重置
DELETE 记录 Y Y Y N
TRUNCATE 记录 N N N Y
DROP 记录+表结构 N N N 表都没了
目录
相关文章
|
27天前
|
SQL 架构师 关系型数据库
【Java架构师体系课 | MySQL篇】⑤ 索引优化实战一
本文深入解析MySQL索引优化原理,涵盖联合索引使用、覆盖索引、索引下推、filesort排序机制及trace工具分析执行计划选择等内容,并结合实际案例提供索引设计原则与SQL优化策略。
104 5
|
25天前
|
JSON 安全 JavaScript
深入浅出解析 HTTPS 原理
HTTPS是HTTP与SSL/TLS结合的安全协议,通过数字证书验证身份,利用非对称加密安全交换会话密钥,再以对称加密高效传输数据,确保通信的机密性、完整性和真实性。整个过程如同建立一条加密隧道,保障网络交互安全。
517 16
|
25天前
|
存储 缓存 关系型数据库
为什么MySQL会选错索引,如何解决?
InnoDB索引选择由优化器基于成本决策,受基数性、选择性、索引覆盖等因素影响。统计信息不准或复杂查询可能导致选错索引,可通过ANALYZE TABLE更新统计、FORCE INDEX强制索引或优化查询和配置来解决。
127 5
|
12天前
|
存储 自然语言处理 测试技术
一行代码,让 Elasticsearch 集群瞬间雪崩——5000W 数据压测下的性能避坑全攻略
本文深入剖析 Elasticsearch 中模糊查询的三大陷阱及性能优化方案。通过5000 万级数据量下做了高压测试,用真实数据复刻事故现场,助力开发者规避“查询雪崩”,为您的业务保驾护航。
577 32
|
16天前
|
数据采集 运维 监控
金融行业RPA案例全解析:银行、证券、保险落地实践与价值数据
凌晨两点,银行、证券、保险、基金从业者仍在与数据搏斗。RPA“数字员工”正颠覆这一现状,通过自动化处理开户、清算、理赔、净值计算等高重复任务,大幅提升效率与合规性。实在智能的实在Agent以AI能力破解非结构化数据难题,助力金融行业实现从“人海战术”到“智能协同”的跨越,释放人力聚焦高价值服务,推动数字化转型迈向新阶段。
|
消息中间件 数据可视化 Java
Linxu下RocketMq及可视化界面的搭建
Linxu下RocketMq配置信息及可视化界面的搭建
1834 0
|
19天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
1009 59
Meta SAM3开源:让图像分割,听懂你的话
|
14天前
|
关系型数据库 MySQL Java
【Java架构师体系课 | MySQL篇】⑦ 深入理解MySQL事务隔离级别与锁机制
本文深入讲解数据库事务隔离级别与锁机制,涵盖ACID特性、并发问题(脏读、不可重复读、幻读)、四种隔离级别对比及MVCC原理,分析表锁、行锁、间隙锁、临键锁等机制,并结合实例演示死锁处理与优化策略,帮助理解数据库并发控制核心原理。
131 4
|
2月前
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体
原文:https://jack-vanlightly.com/blog/2025/9/2/understanding-apache-fluss 作者:Jack Vanlightly 翻译:Wayne Wang@腾讯 译注:Jack Vanlightly 是一位专注于数据系统底层架构的知名技术博主,他的文章以篇幅长、细节丰富而闻名。目前 Jack 就职于 Confluent,担任首席技术架构师,因此这篇 Fluss 深度分析文章,具备一定的客观参考意义。译文拆成了三篇文章,本文是第二篇。
419 25
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体
|
26天前
|
消息中间件 存储 人工智能
官宣上线!RocketMQ for AI:企业级 AI 应用异步通信首选方案
RocketMQ 专门为 AI 场景推出了全新Lite Topic 模型,目前已在阿里云云消息队列 RocketMQ 版 5.x 系列实例上正式发布,并会逐步贡献到 Apache RocketMQ 开源社区,欢迎大家使用。
173 11