跳转到主要内容

btree_gin

用GIN索引常见数据类型

概览

扩展包名版本分类许可证语言
btree_gin1.3FUNCPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
4950btree_gin否是否是是否-

版本

PG18PG17PG16PG15PG14
1.31.31.31.31.3

安装

提示:这是 PostgreSQL 内核自带的 contrib 扩展

CREATE EXTENSION btree_gin;

用法

btree_gin: B 树等价的 GIN 操作符类

为通常仅支持 B 树索引的数据类型提供 GIN 索引操作符类。适用于将 GIN 可索引列和 B 树可索引列组合的多列 GIN 索引。

CREATE EXTENSION btree_gin;

支持的数据类型

int2、int4、int8、float4、float8、numeric、timestamp with time zone、timestamp without time zone、time with time zone、time without time zone、date、interval、oid、money、char、varchar、text、bytea、macaddr、macaddr8、inet、cidr、uuid、bit、varbit、bool、name、bpchar 以及所有 enum 类型。

示例

-- 整数列上的 GIN 索引
CREATE INDEX idx ON test USING GIN (a);
SELECT * FROM test WHERE a < 10;

-- 将全文搜索与标量过滤结合的多列 GIN 索引
CREATE INDEX idx ON articles USING GIN (body_tsvector, category);
SELECT * FROM articles
WHERE body_tsvector @@ to_tsquery('PostgreSQL')
  AND category = 'tech';

注意:btree_gin 在单列查询时不会优于标准 B 树索引。其主要优势在于将标量列与 GIN 原生列(如 tsvector 或数组)组合到单个多列索引中。

这个页面对您有帮助吗?