【问题标题】:Postgresql BTREE_GIN index with gin_trgm_ops option?带有 gin_trgm_ops 选项的 Postgresql BTREE_GIN 索引?
【发布时间】:2016-11-03 19:45:44
【问题描述】:

在https://www.postgresql.org/docs/current/static/pgtrgm.html 上,解释了如何使用带有 gin_trgm_ops 选项的特殊 GIN 索引来促进三元相似性算子的性能。

CREATE INDEX trgm_idx ON test_trgm USING GIN (t gin_trgm_ops);

也有人说:

这些索引不支持相等或简单的比较运算符, 所以你可能也需要一个常规的 B-tree 索引。

但是,还有 BTREE_GIN 扩展,它应该允许 GIN 索引用作 BTREE 索引的替代品。 https://www.postgresql.org/docs/current/static/btree-gin.html

我的问题是:如果我安装 BTREE_GIN 扩展,可以使用 pg_trgm GIN 索引(带有 gin_trgm_ops 选项)作为 BTREE 索引的替代品吗?它是否结合了 BTREE_GIN 和 trigram GIN 索引的属性,或者连接和相等表达式等仍然需要额外的 BTREE 索引?

【问题讨论】:

    标签: postgresql b-tree postgresql-performance gwt-gin trigram


    【解决方案1】:

    不,如果你安装了btree_gin,你可以在integer、varchar或text等“基本”数据类型上创建一个GIN索引。

    这通常是无用的,因为您可以使用这样的索引,而常规 B-tree 索引不会做得更好,但如果您想创建一个多列 GIN 索引,其中包含一个列这样的数据类型,例如,如果您想为 tscol @@ to_tsquery('big data') AND intcol = 42 之类的表达式创建组合索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多