区别:
a.不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。
b.效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。
c.delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。
也就是可以按照后边的where条件进行删除指定行,当然也可以不加where条件,把所有的数据删除清空所执行的语句是truncate,也就是把这个表里所有的数据删除,但是不包含索引,主键等
在执行速度上truncate的速度要大于delete,因为delete是逐行删除
还有一个,delete后不释放数据库空间,而truncate执行后,会释放空间
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)