截断表可以用于删除表中的所有数据。截断表命令还会回收所有索引的分配页。截断表的执行速度与不带where子句的delete(删除)命令相同,甚至比它还要快。delete(删除)一次删除一行数据,并且将每一行被删除的数据都作为一个事务记录日志;而truncate (截断)表则回收整个数据页,只记录很少的日志项。delete(删除)和truncate(截断)都会回收被数据占用的空间,以及相关的索引。只有表的拥有者可以截断表。
另外,truncate表之后,如果有自动主键的话,会恢复成默认值。
转载于http://blog.youkuaiyun.com/imzoer/article/details/7543201仅仅为了备忘
本文详细介绍了SQL中截断表(truncate)与删除(delete)命令的不同之处。截断表不仅能快速清空表内所有数据及索引,还能重置自动主键,适用于表的拥有者对表进行彻底清理的场景。
1524

被折叠的 条评论
为什么被折叠?



