GIN意思是通用倒排索引。GIN被设计为处理被索引项为组合值的情况,并且这种索引所处理的查询需要搜索出现在组合项中的元素值。例如,项可以是文档,并且查询可以是搜索包含指定词的文档。
我们使用词项来表示要被索引的一个组合值,并且用词键来表示一个元素值。GIN总是存储和搜索键,而不是项值本身。
一个GIN存储一个(键,位置列表)对的集合,这里一个posting list是键在其中出现的一个行 ID 的集合。相同的行 ID 可以出现在多个位置列表中,因为一个项可以包含多于一个键。每个键值只被存储一次,因此对于同一个键出现多次的情况,一个GIN索引是非常紧凑的。
GIN访问方法代码不需要知道它所加速的是什么操作,从这个意义上来说,GIN是通用的。相反,它使用为特定数据类型定义的自定义策略。策略定义如何从被索引项和查询条件中抽取键,并且如何决定一个包含查询中某些键值的行是否真正满足查询。
GIN的一个优点是它允许由数据类型的领域专家开发有合适访问方法的自定义数据类型,而不是让一个数据库专家来做这件事。在这一点上很像GiST。
PostgreSQL中的GIN实现主要由 Teodor Sigaev 和 Oleg Bartunov 维护。在他们的网站上有更多关于GIN的信息。
核心PostgreSQL发布包括了 表67.1中所示的 BRIN操作符类。 minmax操作符类存储范围内被索引列中出现的最小和最大值。 inclusion...
目录69.1. 系统目录声明规则69.2. 系统目录初始数据69.2.1. 数据文件格式69.2.2. OID分配69.2.3. OID引用查找69.2.4. 数组类型的...
70.2.1. 函数依赖70.2.2. N 个不同变量的计数70.2.3. MCV 列表70.2.1.函数依赖多元相关性可以用一个非常简单的数据集来演示 — ...
dblink_exec — 在一个远程数据库中执行一个命令大纲dblink_exec(text connname, text sql [, bool fail_on_error]) returns tex...
F.27.1. 函数F.27.2. 配置参数 pg_prewarm模块提供一种方便的方法把关系 数据载入到操作系统缓冲区或者 PostgreSQL缓冲区。可以...
SQL 视图(Views) 视图是可视化的表。 本章讲解如何创建、更新和删除视图。SQL CREATE VIEW 语句 在 SQL 中,视图是基于 SQL 语...
SQL UNIQUE 约束SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录。 UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了...
SQL MID() 函数MID() 函数 MID() 函数用于从文本字段中提取字符。 SQL MID() 语法SELECT MID(column_na...