btree_gin 提供了 GIN 操作符类,它们为数据类型 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、uuid、name、bool、bpchar 以及所有 enum 类型实现了等同于 B-tree 的行为。
总的来说,这些操作符类在性能上可能不会超过等效的标准 B-tree 索引方法,并且它们缺少标准 B-tree 代码的一个主要功能:强制唯一性的能力。然而,它们对于 GIN 的测试以及作为开发其他 GIN 操作符类的基础很有用。此外,对于同时测试 GIN 可索引列和 B-tree 可索引列的查询,创建一个使用其中一个操作符类的多列 GIN 索引可能比创建两个需要通过位图 AND 合并的独立索引更有效。
此模块被认为是“受信任的”,这意味着非超级用户也可以在其拥有的数据库上安装它,前提是他们具有 CREATE 权限。
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。