我正在尝试创建一个Postgres GIN索引来加速以下查询:
header=None
Postgres有可能这样吗?我也对其他选择持开放态度。不幸的是,我无法规范表,所以我需要使用我已经拥有的表结构。
答案 0 :(得分:1)
是的,您可以在此处应用GIN索引,但它可能不是特别有用:
a
现在,您仍然需要在数组中搜索匹配的键/值对。您的查询将变为:
CREATE INDEX find_fast_jsonb_value
ON foo USING GIN (a jsonb_path_ops);
这也会将set-returning-function SELECT DISTINCT id
FROM foo, jsonb_array_elements(a) AS t(b) -- Implicit LATERAL join
WHERE b @> '{"b": "aaa"}'; -- Comparing json key/values here
放在它所属的jsonb_array_elements()
子句中。