小编And*_*ers的帖子

更新 jsonb 列是否会触发该列上所有表达式索引的更新?

我在 PostgreSQL 中使用 jsonb 类型。我经常进行以下类型的更新(jdocjsonb 列在哪里):

UPDATE my_table SET jdoc = jdoc || '{a: "Hello World!"}'::jsonb WHERE id = 123
Run Code Online (Sandbox Code Playgroud)

我在 jsonb 列上有许多表达式索引:

CREATE INDEX ix_b ON my_table some_function(jdoc->>b)
CREATE INDEX ix_c ON my_table some_other_function(jdoc->>c)
Run Code Online (Sandbox Code Playgroud)

如您所见,我只更改了jdoc->a,但我必须设置整个jdoc列。因此,我是否会因更新索引jdoc->b而遭受全部性能损失jdoc->c?或者 PostgreSQL 足够聪明以注意到这些值没有改变,因此索引不需要更新?如果我遭受了全部的性能损失,有没有办法避免它?

postgresql index json

2
推荐指数
1
解决办法
620
查看次数

标签 统计

index ×1

json ×1

postgresql ×1