truncate
- DDL 不删除表结构,只删除表数据;
- 一次性删除所有行,不计入日志,无法回滚,
- 删除数据时等同于delete from table.(区别见下)
- truncate删除表时,索引和外键占用空间会回到初始化最小;不能触发触发器
delete
- DML 不删除表结构,只删除数据;
- 一行一行删除,每删除一行都计入日志,可以回滚;
- 索引、外键都保持
drop
- DDL 删除整个表结构,速度最快
- 速度:drop>truncate>delete
- delete from table 和truncate:对于由外键约束引用的表,不能使用truncate,使用delete
- 只有delete可以回滚
http://www.cnblogs.com/zhizhao/p/7825469.html