【发布时间】:2017-06-14 04:13:57
【问题描述】:
我正在使用 Postgresql 9.6, 在这里,我试图代表 jsonb 类型的 Json 键从表中获取数据, 数据看起来像
[{"name": "gp1", "type": "A"}, {"name": "gp2", "type": "A"}, {"name": "gp2", "type": "A"}]
这里的modules是column_name,client_modules是表名。
我也在使用下面的查询创建索引
create index myindex on client_modules((modules->>'name'));
问题是当我尝试使用以下查询从表中获取数据时
SELECT modules FROM client_modules WHERE modules @>'[{"name":"gp1"}]' or modules @> '{"name":"gp1"}';
我能够检索所需的数据,但在这种情况下,我的 plpgsql 查询是在默认 seqscan 索引上运行的,
我也在执行脚本
set enable_indexscan = on;
AND
set enable_seqscan = off;
但是查询仍然没有在我的索引上运行,当我运行查询时它仍然在默认索引上运行。
【问题讨论】:
标签: sql postgresql