八、索引原理与设计
PostgreSQL 的索引体系高度可扩展:除通用的 B-tree 外,还有 Hash、GIN、GiST、SP-GiST、BRIN、Bloom 等访问方法,分别面向多值、几何、范围、物理有序等不同数据形态。本章讲清各访问方法的结构与适用场景、复合索引的列顺序与最左前缀、表达式/部分/覆盖索引与 Index-Only Scan,以及生产必备的并发建索引。核心原则:用真实执行计划验证索引收益,而非凭规则推荐索引。
本章目录
- 索引访问方法总览:B-tree/Hash/GIN/GiST/SP-GiST/BRIN/Bloom
- 复合索引、列顺序与最左前缀
- 表达式索引、部分索引、覆盖索引与 Index-Only Scan
- 并发建索引:CREATE/REINDEX INDEX CONCURRENTLY
学习目标
- 依据数据形态与查询选择合适的访问方法,而非默认只用 B-tree
- 正确设计复合索引列顺序,理解 PostgreSQL 与“最左前缀”的关系
- 用表达式/部分/覆盖索引减少扫描与回表,触发 Index-Only Scan
- 在生产用
CONCURRENTLY安全建/重建索引,并处理失败留下的无效索引
