btree_gin提供了 GIN 操作符类,为以下数据类型实现 B-树等价行为:int2、int4、int8、float4、float8、timestamp with time zone、timestamp without time zone、time with time zone、time without time zone、date、interval、oid、money、"char"、varchar、text、bytea、bit、varbit、macaddr、macaddr8、inet、cidr以及所有enum类型。
一般来说,这些操作符类的性能不会优于等价的标准 B-树索引方法,而且它们缺少标准 B-树代码的一项主要特性:强制唯一性的能力。不过,它们对于 GIN 测试以及作为开发其他 GIN 操作符类的基础很有用。此外,对于同时测试一个可由 GIN 建索引的列和一个可由 B-树建索引的列的查询,创建一个使用这些操作符类之一的多列 GIN 索引,可能比创建两个必须通过位图 AND 运算组合的独立索引更高效。
CREATE TABLE test (a int4); -- create index CREATE INDEX testidx ON test USING GIN (a); -- query SELECT * FROM test WHERE a < 10;
Teodor Sigaev(<teodor@stack.net>)和 Oleg Bartunov(<oleg@sai.msu.su>)。参阅 http://www.sai.msu.su/~megera/oddmuse/index.cgi/Gin。