JSONB数组元素索引

Postgres 11中有表格:

_order
-----------
id

items: jsonb: [{'id': 1},{'id': 5}...]

property
-----------
item_id

value

我们需要获取已设置property.value的每个订单的订单清单,其中包含每个订单的商品阵列。

我使用这样的查询:

select
     _order.*,jsonb_agg(distinct property.value) filter (where property.value is not null) as listed_items
from _order
left join jsonb_array_elements(items) jae on true
left join property on ((jae->'id')::int = property.id)
group by _order.id

_order.id,property.item_id - primary keys

对于真实数据(每8k订购500个项目,总计约400万行),查询工作太慢-大约25秒。

_order.items上添加GIN索引后,查询开始工作15秒钟,但速度却很慢。

问题:如何从jsonb中为数组id建立索引?我发现如何才能做到这一点,而不是数组。

也许您对如何优化货币数据库架构的查询有任何想法?

cheungdmin19791004 回答:JSONB数组元素索引

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3154229.html

大家都在问