MySQL 联合索引(持续更新)
Timeline
基础知识(2025-12-17)
联合索引,又叫多列索引,是一种可以包含多个列的索引技术,使用得当,可以提升过滤和排序执行效率。
创建联合索引示例如下:
新建唯一联合索引,则加上 UNIQUE 关键字,如:
- UNIQUE INDEX idx_name_grade (name, grade)
- CREATE UNIQUE INDEX idx_name_grade ON students (name, grade)
重点:
- 应用最左匹配原则:对 (name)、(name, grade) 有效,但对 (grade, name) 无效
- 主流数据库优化器会对条件进行重排,所以条件顺序不影响命中索引
- 联合索引 (name, grade) 和 (grade, name) 不同
- 索引副作用:对 INSERT、UPDATE、DELETE 操作有额外开销
- 应业务要求的过滤逻辑创建联合索引,若业务场景下,单个字段的查询更多,则创建单个索引