BRIN
块摘要
BRIN 索引(Block Range INdexes 的缩写)存储的是关于表中连续物理块范围内所保存值的摘要信息。因此,它最适用于那些列值与表行物理顺序高度相关的列。与 GiST、SP-GiST 和 GIN 一样,BRIN 也可以支持多种不同的索引策略,而 BRIN 索引可使用哪些具体操作符取决于所采用的索引策略。对于具有线性排序顺序的数据类型,每个块范围上被索引的数据对应于该列值的最小值和最大值。这支持使用下列操作符的索引化查询:
当前查看 PostgreSQL 18.6。
能力 · PostgreSQL 18.6
能力结论来自对应版本的文档。有条件支持取决于操作符类、索引类型或查询,不能视为普遍保证。
| 能力 | 支持状态 | 条件与证据 |
|---|---|---|
| 有序输出 | 不支持 | 普通的有序输出与按运算符排序是不同能力,例如按近邻距离排序。 同版本英文证据 |
| 唯一键 | 不支持 | 这里指唯一索引,排除约束采用不同的约定。 |
| 多键列 | 支持 | 多个检索键与不参与检索的 INCLUDE 附加列是不同概念。 同版本英文证据 |
| INCLUDE 附加列 | 不支持 | 附加列不会成为检索键。过宽的附加数据可能超过索引元组大小限制。 同版本英文证据 |
| 仅索引扫描 | 不支持 | 查询必须使用索引覆盖的值;能否避免访问堆取决于可见性映射状态。 同版本英文证据 |
| 按距离排序 | 未确定 | 可用性取决于所选操作符类和排序运算符。 现有来源不足以确定此项能力,不能据此判断为“不支持”。 |
| 并行索引扫描 | 不支持 | 多个进程协作扫描同一索引,不同于并行位图堆扫描,也不同于 Parallel Append 下各自独立的串行扫描。 同版本英文证据 |
| 并行构建索引 | 支持 | 并行构建与并行扫描分别记录,还取决于工作进程是否可用、配置和构建阶段。 同版本英文证据 |
查询、运算符与限制
CREATE INDEX name ON table_name USING brin (column_name);这是语法模板;使用时请替换表、列占位符,并选择兼容的操作符类。
BRIN 索引(Block Range INdexes 的缩写)存储的是关于表中连续物理块范围内所保存值的摘要信息。因此,它最适用于那些列值与表行物理顺序高度相关的列。与 GiST、SP-GiST 和 GIN 一样,BRIN 也可以支持多种不同的索引策略,而 BRIN 索引可使用哪些具体操作符取决于所采用的索引策略。对于具有线性排序顺序的数据类型,每个块范围上被索引的数据对应于该列值的最小值和最大值。这支持使用下列操作符的索引化查询:
< <= = >= >标准发布版自带的 BRIN 操作符类记录在 表 65.4 中。更多信息见 第 65.5 节 。
存储参数
通过 CREATE INDEX … WITH 或 ALTER INDEX … SET 设置索引参数。默认值和实际行为取决于访问方法及所选 PostgreSQL 版本。
pages_per_range
定义每个 BRIN 索引项对应的一个块范围由多少个表块组成(详见 第 65.5.1 节 )。默认值为 128 。
autosummarize
定义当在下一页范围检测到插入时,是否为前一页范围排队执行一次范围摘要操作(详见 第 65.5.1.1 节 )。默认值为 off 。
版本比较
这些样本的文档能力状态和存储参数清单没有差异.
比较范围为能力状态和文档中的存储参数名称,不覆盖全部算法、性能特点、参数定义和发布说明变化。
文档记录的历史
PostgreSQL 16 → 17
- 并行索引构建: 不支持 → 支持
PostgreSQL 10 → 11
- 并行索引构建: 未确定 → 不支持 (来源覆盖变化)
PostgreSQL 9.6 → 10
- 并行索引扫描: 未确定 → 不支持 (来源覆盖变化)
- 新增记录的存储参数:
autosummarize
PostgreSQL 9.5 → 9.6
- 仅索引扫描: 未确定 → 不支持 (来源覆盖变化)
PostgreSQL 9.4 → 9.5
首次出现在当前样本清单中。
相关文档与对象
来源与构建标识
原始证据来自英文手册构建 18.6。中文译文另列来源,不将文档结论作为运行时能力测量。
- PostgreSQL 18.6: BRIN
- PostgreSQL 18.6 · catalog-pg-am
- PostgreSQL 18.6 · hash-index
- PostgreSQL 18.6 · indexam
- PostgreSQL 18.6 · indexes-index-only-scans
- PostgreSQL 18.6 · indexes-multicolumn
- PostgreSQL 18.6 · indexes-opclass
- PostgreSQL 18.6 · indexes-ordering
- PostgreSQL 18.6 · indexes-unique
- PostgreSQL 18.6 · parallel-plans
- PostgreSQL 18.6 · sql-createindex
来源指纹
- 手册构建
- PostgreSQL 18.6 Documentation
- 组合页面 SHA-256
0e39ebd4fddbd990280e62f4503f0bd18765bbd990dccf4cba976b5d47da45e7- 手册清单记录的源码归档
- 18.6
- 手册清单记录的归档 SHA-256
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
- indexes-types.html:
cee340145a2ef5fbd807f66755b10d22bb049e328c460f572f45ad6193e7e4a1 - catalog-pg-am.html:
579364179365a51945e2edb6481df5d198916c2c725e506f166824dedf08994c - hash-index.html:
b994550220e1ee05648d09804c9eb2302834e07e261932420a96605d7c9c6140 - indexam.html:
0a38f7c0ac0541f31e086c83a624e782c15367456578a6dd3329882516bc1080 - indexes-index-only-scans.html:
2322ec12b82f3fd01ee4072049caaa5a0190148ac68d98c0fcd6eda958828a83 - indexes-multicolumn.html:
c0a799ec49b8ef057a63d465fb1d72a3b81e16d652c28a71734d45592d081202 - indexes-opclass.html:
07de06abf3a2aff2a891a2789def434d9b76705e54d45ca5338dc13451ae2962 - indexes-ordering.html:
85fac99c7c66ed19dd021f12b5cc53ce18aa5bfa4b56c8c168317f99b8f12d3b - indexes-unique.html:
7c3eac7fa180b22534ff01df0c68155f15b6b360ffe35507c5266059116840db - parallel-plans.html:
62207d207bead82b01b59dc119c4f95856f08655cc11d4699a05a40867ed2070 - sql-createindex.html:
6aa00da55815d13d0355dd25cb1cdb603fa36964993f164d1b6f486011282580
返回 Index AM · 已记录于 PostgreSQL 9.5 至 20;最早样本不代表实际引入版本。