如何使多列JSON索引在Postgres?



我有一个查询,我通过一个正常的文本列和一个JSON列中的值查询。我想知道的是如何为查询创建最佳索引?

这是查询:

explain select * from "tags" where "slug"->>'en' = 'slugName' 
and "type" in ('someType1','someType1');
-------
Seq Scan on tags  (cost=0.00..1.47 rows=1 width=888)
"  Filter: (((type)::text = ANY ('{dsfdsf,fgsdf}'::text[])) AND ((slug ->> 'en'::text) = 'dsfdsf'::text))"

"slug"列是JSON类型,并且"类型"为";列类型为varchar(191)。我很熟悉,我可以添加一个索引JSON列,如:

CREATE INDEX tag_slug_index ON tags USING btree ((slug ->> 'en'));

但是我想知道,我如何创建一个多列索引上的鼻涕虫名称与类型列相结合?

没有什么特别的,你只是按正常的方式做,用逗号分隔它们:

CREATE INDEX ON tags USING btree ("type", (slug ->> 'en'));

表达式仍然需要放在一个额外的括号中,如果它是索引中唯一的"列"也是如此。

相关内容

  • 没有找到相关文章

最新更新