使用Postgres 9.5 GIN索引和JSONB

时间:2016-01-23 06:20:56

标签: sql postgresql gin jsonb

我正在尝试创建一个Postgres GIN索引来加速以下查询:

header=None

Postgres有可能这样吗?我也对其他选择持开放态度。不幸的是,我无法规范表,所以我需要使用我已经拥有的表结构。

1 个答案:

答案 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()子句中。