TRUNCATE、DELETE、DROP 的区别?

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 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 表都没了
目录
相关文章
|
22天前
|
SQL 架构师 关系型数据库
【Java架构师体系课 | MySQL篇】⑤ 索引优化实战一
本文深入解析MySQL索引优化原理,涵盖联合索引使用、覆盖索引、索引下推、filesort排序机制及trace工具分析执行计划选择等内容,并结合实际案例提供索引设计原则与SQL优化策略。
93 5
|
20天前
|
JSON 安全 JavaScript
深入浅出解析 HTTPS 原理
HTTPS是HTTP与SSL/TLS结合的安全协议,通过数字证书验证身份,利用非对称加密安全交换会话密钥,再以对称加密高效传输数据,确保通信的机密性、完整性和真实性。整个过程如同建立一条加密隧道,保障网络交互安全。
487 16
|
20天前
|
存储 缓存 关系型数据库
为什么MySQL会选错索引,如何解决?
InnoDB索引选择由优化器基于成本决策,受基数性、选择性、索引覆盖等因素影响。统计信息不准或复杂查询可能导致选错索引,可通过ANALYZE TABLE更新统计、FORCE INDEX强制索引或优化查询和配置来解决。
112 5
|
7天前
|
存储 自然语言处理 测试技术
一行代码,让 Elasticsearch 集群瞬间雪崩——5000W 数据压测下的性能避坑全攻略
本文深入剖析 Elasticsearch 中模糊查询的三大陷阱及性能优化方案。通过5000 万级数据量下做了高压测试,用真实数据复刻事故现场,助力开发者规避“查询雪崩”,为您的业务保驾护航。
370 24
|
23天前
|
架构师 关系型数据库 MySQL
【Java架构师体系课 | MySQL篇】③ Explain执行计划详解
Explain用于分析SQL执行计划,通过模拟优化器行为揭示查询性能瓶颈。它展示索引使用、扫描行数等信息,帮助优化查询语句,提升数据库效率。
143 6
【Java架构师体系课 | MySQL篇】③ Explain执行计划详解
|
14天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
849 59
Meta SAM3开源:让图像分割,听懂你的话
|
8天前
|
关系型数据库 MySQL Java
【Java架构师体系课 | MySQL篇】⑦ 深入理解MySQL事务隔离级别与锁机制
本文深入讲解数据库事务隔离级别与锁机制,涵盖ACID特性、并发问题(脏读、不可重复读、幻读)、四种隔离级别对比及MVCC原理,分析表锁、行锁、间隙锁、临键锁等机制,并结合实例演示死锁处理与优化策略,帮助理解数据库并发控制核心原理。
105 4
|
21天前
|
消息中间件 存储 人工智能
官宣上线!RocketMQ for AI:企业级 AI 应用异步通信首选方案
RocketMQ 专门为 AI 场景推出了全新Lite Topic 模型,目前已在阿里云云消息队列 RocketMQ 版 5.x 系列实例上正式发布,并会逐步贡献到 Apache RocketMQ 开源社区,欢迎大家使用。
149 11
|
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 深度分析文章,具备一定的客观参考意义。译文拆成了三篇文章,本文是第二篇。
390 25
Confluent 首席架构师万字剖析 Apache Fluss(三):湖流一体
|
23天前
|
架构师 关系型数据库 MySQL
【Java架构师体系课 | MySQL篇】④ 索引失效问题总结
本文详解MySQL索引使用规范,涵盖全值匹配、最左前缀法则、避免索引列操作、覆盖索引、不等条件与通配符对索引的影响等十二大要点,结合EXPLAIN分析SQL执行计划,提升查询性能。
86 7