DELETE:数据文件大小不变,数据库考虑回滚问题。
TRUNCATE:直接清空表快速释放物理空间。
DELETE和TRUNCATE的核心目的都是删除表中的数据,但二者的操作层级、执行逻辑完全不同,这也是后续所有差异的根源。
1 DELETE:逐行删除的DML操作
DELETE是数据操纵语言(DML),核心作用是逐行删除表中符合条件的数据,支持精准筛选,操作后可通过事务回滚恢复数据,是日常开发中最灵活、最常用的删除方式。
关键特性:DELETE操作会记录每一行数据的删除日志,用于事务回滚,因此执行过程中会占用一定的系统资源,删除大量数据时效率较低。
2 TRUNCATE:清空表数据的DDL操作
TRUNCATE是数据定义语言(DDL),核心作用是快速清空整个表的所有数据,不支持条件筛选,操作后无法通过事务回滚恢复数据,本质是通过释放表空间的方式实现数据清空,执行效率极高。
文章
阅读量
获赞
