我试图从 PostgreSQL 12 docs中理解以下子句的含义
CLUSTER 可以使用指定索引上的索引扫描或(如果索引是 b 树)顺序扫描然后排序来重新排序表。
当使用顺序扫描和排序时,还会创建一个临时排序文件,因此峰值临时空间需求是表大小的两倍,加上索引大小。...您可以通过暂时将 enable_sort 设置为 off 来禁用此选择。
集群意味着基于索引信息对表进行物理重新编码。那么如果我设置会发生什么enable_sort=off
?它还能reoder
正确管理数据吗?如果是的话,那么enable_sort
在这里有选择权有什么好处呢?
TFM 说:
所以是的,它会正确地重新排序表行,但如果可能的话,它会尝试选择一种替代的、可能更慢的访问方法。
它可能会在表中的索引和随机点之间来回跳跃,将我们的硬盘磨成灰尘,同时减慢重新排序表的速度(通过创建一个按索引顺序的新副本)。
是的。表现。如果表很大并且还没有很好地聚集,批量排序比跟随索引快得多。