(19)drop、truncate和delete的区别
2020-10-23 本文已影响0人
hedgehog1112
速度上 drop> truncate > delete
1、drop:删除表
2、truncate:保留表,删除所有数据,1)和事务无关(删除行不能恢复); 有外键约束不能用; 2)表和索恢复初始大小(重新设置高水线和索引,缺省时将空间释放到minextents个extent除非:);
truncate + reuse stroage:整理表内部碎片,再重新导入/插入数据。
3、delete:删除部分数据,1)和事务有关(事务记日志中以便回滚),想触发trigger; 2)空间全释
truncate、drop是DLL(data define language), 隐式提交,立即生效,原数据不放 rollback segment中,不能回滚,不会触发触发器。
https://zhuanlan.zhihu.com/p/174836293