截断分区与删除分区在性能方面,哪个是有效且更好使用的分区?

问题描述

这些命令在性能上有何不同

ALTER TABLE t1 DROP PARTITION p1;

ALTER TABLE t1 TruncATE PARTITION p1;

我有一个一个问题的link,但是它只处理命令的输出,而不是效率,就像是删除一行还是一次删除所有行一样。 注意:考虑到大量数据,请说分区中有数百万行。

解决方法

我不知道这是否回答了您的问题:

TRUNCATE DROP 的工作原理完全相同,执行速度也一样快,但是它们的作用却不同。

截断:从表中删除所有行,而不记录单个行的删除。

DROP :删除一个或多个表定义以及这些表的所有数据,索引,触发器,约束和权限规范。

TRUNCATE DROP 都是最少的日志记录操作。这意味着它们的工作方式完全相同。它没有删除单独的行,而是将相关的数据页标记为未分配,并另外将表的元数据标记为已删除。

TRUNCATE DROP 在行为和速度方面几乎相同。而且无论如何,如果您根本不需要表结构,请使用 DROP

,

删除分区应该稍微快一点,尽管您很难测量它。如果我没记错的话,TRUNCATE是作为DROP + CREATE实现的。