将GIN索引与PostgreSql中的sql ANY运算符一起使用

时间:2018-05-14 09:33:00

标签: arrays postgresql indexing

我想知道PostgreSql是否会对GIN运算符使用整数数组的ANY索引。假设我有一个表tree_nodes,其中包含类型为id的{​​{1}}和类型为int的{​​{1}}。简单的例子:

enter image description here

当我写一个选择path时会使用GIN索引,例如int[] = 2。

我知道,in case of @>它会,但我相信,在我的情况下,select * from tree_nodes where :id = any(path)运算符将比:id更有效

1 个答案:

答案 0 :(得分:1)

GIN索引不能与=ANY一起使用。

您可以做的是将<@运算符与单元素数组一起使用:

SELECT * FROM tree_nodes
WHERE ARRAY[$1] <@ path;

这里可以使用GIN索引。