2017/03/18

删除表格使用delete还是truncate


delete from 表名;

truncate table 表名;

不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。

效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。

delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。

也就是说,当我们需要清空一个表,并需要它的自增ID从最原始开始,就如重新建立一张表一样,那么就使用 truncate table。否则就使用 delete from