我想知道PostgreSql是否会对GIN
运算符使用整数数组的ANY
索引。假设我有一个表tree_nodes
,其中包含类型为id
的{{1}}和类型为int
的{{1}}。简单的例子:
当我写一个选择path
时会使用GIN索引,例如int[]
= 2。
我知道,in case of @>它会,但我相信,在我的情况下,select * from tree_nodes where :id = any(path)
运算符将比:id
更有效
答案 0 :(得分:1)
GIN索引不能与=ANY
一起使用。
您可以做的是将<@
运算符与单元素数组一起使用:
SELECT * FROM tree_nodes
WHERE ARRAY[$1] <@ path;
这里可以使用GIN索引。