我正在使用PostgreSQL。 有没有办法仅在字典键上创建索引,而不是值。
例如,想象一个像这样的jsonb列:
select data from tablename where id = 0;
answer: {1:'v1', 2:'v2'}
我希望在键集(或键列表)
[1, 2]
上创建索引,以加快查询速度,例如:select count(*) from tablename where data ? '2';
正如您在文档中所看到的,有一种方法可以对整个列(键和值)进行索引:
CREATE INDEX idxgin ON api USING GIN (jdoc);
考虑到我将大量数据存储在值中,这对我来说并不好。
我之前尝试过这个:
CREATE INDEX test ON tablename (jsonb_object_keys(data));
错误信息为:
ERROR: set-returning functions are not allowed in index expressions
另外,我不想将键存储在字典中作为一个值。
你能帮帮我吗?
where data ? '?'
。 - user330315