索引设计与生命周期
索引是查询性能的核心杠杆,也是写放大与存储成本的来源。本主题覆盖从索引类型选择、ESR 复合索引设计,到用 explain 验证与安全下线的完整生命周期。
本章条目
| 编号 | 条目 | 类型 | 难度 | 一句话摘要 |
|---|---|---|---|---|
| INDEX-01 | 索引类型全景 | 参考 | 中级 | 单字段/复合/多键/文本/地理/哈希/通配符/TTL/唯一/稀疏/部分 |
| INDEX-02 | ESR 原则与复合索引 | 指南 | 高级 | Equality-Sort-Range 排序、前缀、覆盖查询 |
| INDEX-03 | explain 分析与索引生命周期 | 指南 | 高级 | 读 executionStats、隐藏索引、识别与下线冗余索引 |
核心原则
不要仅凭查询文本建索引
一条负责任的索引建议必须依赖:字段基数(cardinality)、数据分布、过滤比例(选择性)、排序需求、返回量与写入负载。脱离这些前提的「加个索引」是不负责任的。
- ESR 决定字段顺序:等值(Equality)→ 排序(Sort)→ 范围(Range)。
- 覆盖查询最快:查询所需字段全在索引里,无需回表
FETCH。 - 索引不是越多越好:每个索引都增加写放大、占用缓存与磁盘、拉长构建时间。
