向b-tree索引更新具有相同值的列



我有这两个索引:

CREATE INDEX "idx1" ON "posts"("category", "feed", "create_time" DESC);
CREATE INDEX "idx2" ON "posts"("feed", "create_time" DESC);

我执行了这个更新函数:

UPDATE "posts"
SET "attribute" = 'something' AND "feed" = function("attribute")
WHERE "id" = '123';

function("attribute")计算提要基于属性列,并且大多数时候feed不会改变。这是否意味着索引idx1idx2当提要更新为相同的值时,不会进行重构,从而使更新非常快吗?

即使我没有任何更新问题或缓慢的延迟,这可能是明智的提前考虑。

如果更新是退化的,那么它可以符合仅堆元组更新的条件,在这种情况下不需要维护索引。但是要应用这一点,在同一页面中需要有足够的空闲空间来容纳元组的新副本。

最新更新