Truncate与delete的区别以及Truncate能否添加筛选条件
truncate和delete的区别
能否释放空间
- TRUNCATE:删除内容、不删除定义、可以释放空间。
- DELETE :删除内容、不删除定义、不能释放空间。
删除全部数据以及部分数据
- truncate table:只能删除表中全部数据。
- delete from table where……,可以删除表中全部数据,也可以删除部分数据。
删除记录是否记入日志
- delete from记录是一条条删的,所删除的每行记录都会进日志。
- 而truncate一次性删掉整个页,因此日志里面只记录页的释放。
执行速度
- truncate的执行速度比delete快。
能否回滚
- delete执行后,删除的数据占用的存储空间还在,还可以恢复数据,也因此delete删除后,delete可以回滚。
- truncate删除的数据占用的存储空间不在,不可以恢复数据。也因此truncate 删除后,不能回滚。
Truncate能否添加筛选条件
- 不能
- TRUNCATE 删除表,无法回退。默认选择为整个表的内容,所以不能加条件。