Linux上PostgreSQL索引优化实用技巧
一 索引类型与适用场景
二 索引设计与建模要点
三 使用与维护的最佳实践
四 典型场景与索引方案
| 场景 | 推荐索引 | 关键要点 |
|---|---|---|
| 高选择性等值查询(主键/唯一键) | B-Tree | 通用、稳定,支持点查与范围 |
| 范围查询 + 排序(时间区间、价格区间) | B-Tree | 将范围列置于复合索引前列,利于顺序扫描 |
| 全文检索/数组/JSONB | GIN | 倒排结构,适合多值/文本检索 |
| 地理空间 | GiST/SP-GiST | 适配R-Tree/Quad-tree等空间结构 |
| 超大且近似有序的日志/时序 | BRIN | 极小索引体积,配合分区更高效 |
| 低频条件的高维过滤(如状态+时间) | 部分索引 | 仅对“热条件”建索引,节省成本 |
| 覆盖查询(少数列点查) | B-Tree + INCLUDE | 促成仅索引扫描,减少回表 |
| 以上方案覆盖常见业务形态,能作为索引选型的“第一性原理”。 |
五 监控与持续优化