簡體   English   中英

如何在 postgresql 中使用 gin 索引在 jsonb 列上按查詢運行組?

[英]how can I run a group by query on a jsonb column with a gin index in postgresql?

我有一個表,其中有一列名為 data 的格式為 jsonb。 我在此列上創建了 gin 索引。

我想讓 postgres 在執行 group by 子句時使用 gin 索引。 此查詢的正確語法是什么? 這是來自數據列的示例條目

{"firstname": "Bob", "lastname": "Smith", "home_zip": "11234"}

我試過這個,但是當我運行這個查詢時,它 postgres 不使用 gin 索引。

explain analyze select data#>'{home_zip}',count(*) from contacts group by data#>'{home_zip}'

Gin 索引不支持can_order ,因此不能用於加速 group by(除了通過加速為 GROUP BY 提供數據的 WHERE 子句)。

您可以通過以下方式使用表達式索引來加速:

create index on contacts btree ((data #> '{home_zip}'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM