【问题标题】:Will GIN index be used with sql ANY operator in PostgreSql将 GIN 索引与 PostgreSql 中的 sql ANY 运算符一起使用
【发布时间】:2018-10-23 22:16:15
【问题描述】:

我想知道 PostgreSql 是否会将 GIN 索引用于带有整数数组的 ANY 运算符。假设我有一个表tree_nodes,其中包含id,类型为intpath,类型为int[]。简单例子:

当我写一个选择 select * from tree_nodes where :id = any(path) 时是否会使用 GIN 索引,例如 :id = 2。

我知道,in case of @> 会,但我相信,就我而言,ANY 运算符将比 @> 更有效

【问题讨论】:

标签: arrays postgresql indexing


【解决方案1】:

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

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

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

这里可以使用GIN索引。

【讨论】:

  • 谢谢。真的,这里不用ANY
猜你喜欢
  • 1970-01-01
  • 2014-01-02
  • 2016-04-10
  • 1970-01-01
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
相关资源
最近更新 更多