btree_gin

用GIN索引常见数据类型

概览

扩展包名版本分类许可证语言
btree_gin1.3FUNCPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
4950btree_gin-
相关扩展btree_gist unaccent fuzzystrmatch pg_trgm prefix citext pg_idkit pgx_ulid

版本

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;

支持的数据类型

int2int4int8float4float8numerictimestamp with time zonetimestamp without time zonetime with time zonetime without time zonedateintervaloidmoneycharvarchartextbyteamacaddrmacaddr8inetcidruuidbitvarbitboolnamebpchar 以及所有 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 或数组)组合到单个多列索引中。


最后修改 2026-03-12: update extension pages (f579993)