| 联合索引 | 按等值→范围→排序设计列序;注意最左前缀 |
|---|---|
| 覆盖 | 查询列全部命中索引可避免回表 |
| 维护 | 写多的表控制索引数量;定期检查未使用索引 |
- 抓慢查询:按总耗时与出现频率排序,圈定优化对象
- 看执行计划:确认扫描行数、命中索引与回表次数
- 定列序:等值条件列在前,范围与排序列在后
- 验证收益:对比优化前后执行计划与延迟数据
- 控制成本:合并冗余索引,跟踪写延迟与空间占用
联合索引示例
联合索引示例
CREATE INDEX idx_order_user_status_time ON orders (user_id, status, created_at);
-- 支持:WHERE user_id=? AND status=? ORDER BY created_at
-- 范围条件之后的列,通常无法继续用于等值定位索引是否生效要用执行计划验证:函数包裹列、隐式类型转换都会让索引失效。