truncate 和 delete 的区别:
| 效率 | 回滚 | 类型 | 按条件删除 |
---|
tuncate | 高 | 不支持 | DDL | 不支持 |
delete | 低 | 支持 | DML | 支持 |
truncate 速度快是因为不会把操作记录到日志中,一次删除表的所有内容。并且不能回滚。所以所读快。
delete 删除是讲表内容一条一条删除,并将删除记录记录到日志中。commit才会生效,如果没有commit,rollback也是可以的。所以效率低。
如果是有条件的删除数据,则只能用delete + where 条件即可。truncate是不行的。