SQL中delete和truncate

作用

都可以用于删除一张数据表的全部数据

-- 删除表a的全部数据
delete from a;
truncate table a;

区别

  1. delete属于DML,而truncate属于DDL
  2. truncate只能用于表,而delete可以用于表、视图等
  3. delete可以加where子句限制条件,truncate不能
  4. delete支持事务,truncate不支持
  5. truncate删除效率比delete

总结

一般来说,只有删除整张表的数据,表的数据量大,且无需考虑撤回的情况下,可以考虑使用truncate以提升性能