Truncate 和 Delete 的区别与选择

1)事务和日志

delete   语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行回滚操作。

truncate table  则 一次性地从表中删除所有的数据并不把单独的删除操作记录日志保存,删除行时不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。

 

2)表和索引所占空间

当表被truncate后,这个表和索引所占用的空间会恢复到初始化大小。

delete 操作不会减少表或索引所占的空间。

 

3)一般而言

drop >  truncate > delete

 

posted @ 2022-01-12 16:06  南丶瓜  阅读(93)  评论(0)    收藏  举报