Mysql清空表(TRUNCATE)与删除表中数据(DELETE)的区别

TRUNCATE

truncate `table_name`
  • 直接清空表格,速度快。
  • 不写服务器log,效率高。
  • 不激活trigger(触发器),但是会重置Identity(标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录,而不是接着原来的ID数。

DELETE

delete from `table_name `
delete from `table_name ` where  `condition_sql`
  • 逐条删除,速度慢。
  • 写服务器log,效率低。
  • 激活trigger(触发器),但不会重置Identity,即Identity依旧是接着被删除的最近的那一条记录ID加1后进行记录。
  • 如果只需删除表中的部分记录,只能使用DELETE语句配合where条件。(如上代码段所示)

你可能感兴趣的:(Mysql清空表(TRUNCATE)与删除表中数据(DELETE)的区别)