三种方式对比
| 维度 | DELETE | TRUNCATE TABLE | DROP TABLE |
|---|---|---|---|
| 删除范围 | 满足条件的行 | 全表所有行 | 表结构+数据+索引 |
| 事务回滚 | 事务内可回滚 | MySQL 不可回滚;PG 可回滚 | MySQL 不可回滚;PG 可回滚 |
| 触发器 | 触发 DELETE 触发器 | 不触发 | 不触发 |
| 自增计数 | 不重置 | MySQL 重置;PG 默认不重置 | 随表消失 |
| 典型耗时 | 逐行,大表慢 | 页级,很快 | 很快 |
示例
示例
DELETE FROM t WHERE id < 1000; -- 删部分
TRUNCATE TABLE t; -- 清空
DROP TABLE t; -- 连表删除