truncate、delete、drop区别

truncate

  • DDL 不删除表结构,只删除表数据;
  • 一次性删除所有行,不计入日志,无法回滚,
  • 删除数据时等同于delete from table.(区别见下)
  • truncate删除表时,索引和外键占用空间会回到初始化最小;不能触发触发器

delete

  • DML 不删除表结构,只删除数据;
  • 一行一行删除,每删除一行都计入日志,可以回滚;
  • 索引、外键都保持

drop

  • DDL 删除整个表结构,速度最快

 

 

  1. 速度:drop>truncate>delete
  2. delete from table 和truncate:对于由外键约束引用的表,不能使用truncate,使用delete
  3. 只有delete可以回滚

 

http://www.cnblogs.com/zhizhao/p/7825469.html

 

posted @ 2018-04-25 16:31  白莲花の  阅读(128)  评论(0编辑  收藏  举报