gpt4 book ai didi

postgresql - 聚集索引可以在移动到不同的表空间后继续存在吗?

转载 作者:行者123 更新时间:2023-11-29 13:12:25 24 4
gpt4 key购买 nike

我有一个最初按天分区的表。每天结束时,不会有更多记录添加到该分区,因此我对索引进行聚类,然后对该表进行大量数字运算和聚合(使用我聚类的索引):

CLUSTER table_a_20181104 USING table_a_20181104_index1;

几天后(通常是一周),我将一天的分区合并到一个更大的分区中,该分区包含该月所有日期的数据。我使用此 SQL 来实现此目的:

WITH moved_rows AS 
(
DELETE FROM table_a_20181104
RETURNING *
)
INSERT INTO table_a_201811
SELECT * FROM moved_rows;

大约一个月后,我更改了表空间以将数据从 SSD 磁盘移动到传统的磁性硬盘。

ALTER TABLE ... SET TABLESPACE ...

我在一天结束时对索引的初始聚类确实提高了针对它运行的查询的性能。

我知道聚类是一次性命令,如果添加/删除新记录则需要重复。

我的问题是:

  • 将“日”分区合并到“月”分区后,是否需要重复聚类?
  • 更改表空间后是否需要重复集群?
  • 如果我VACUUM 分区,是否需要重复聚类?

最佳答案

  • 将数据从一个分区移动到另一个分区会破坏聚类,因此您需要在它之后重新聚类。

  • ALTER TABLE ... SET TABLESPACE 将按原样复制表文件,因此将保留集群。

  • VACUUM 不会移动行,因此也会保留聚类。

关于postgresql - 聚集索引可以在移动到不同的表空间后继续存在吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53240125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com