阶段四 · 索引与执行计划
阶段三讲清了「数据长什么样」,这一阶段讲「怎么找到它」。两者是连着的——Index-Only Scan 直接依赖可见性映射。
- B-tree 的物理结构:为什么复合索引的列顺序是硬约束 → 详见
- 选择率与代价模型:优化器凭什么放弃索引
EXPLAIN (ANALYZE, BUFFERS)逐字段读法- 覆盖索引与 Index-Only Scan
- GIN(jsonb / 全文 / 数组)、GiST、BRIN、部分索引、表达式索引
- 统计信息:
ANALYZE、pg_statistic、多列统计对象
- 索引
(a, b)能否加速WHERE b = ??从 B-tree 结构解释。 Bitmap Index Scan在什么条件下出现?它解决了什么问题?- 优化器放着索引不用而选 Seq Scan,至少说出三个可能原因。
- 为什么 Index-Only Scan 依赖
VACUUM?把因果链完整说一遍。 - GIN 索引为什么写入慢?
fastupdate和 pending list 是什么?