面试题答案
一键面试索引创建语法(以MySQL为例)
CREATE INDEX idx_age_score ON students (age, score);
原因
- 最左前缀原则:复合索引在查询时遵循最左前缀原则。由于我们频繁查询年龄大于特定值且分数在某一范围内的学生信息,将
age
放在索引的第一列,当查询条件有age
相关的过滤时,索引能有效发挥作用。 - 顺序影响:如果将
score
放在age
前面,对于年龄大于特定值的查询,索引无法有效利用。而先按age
过滤,再按score
在范围内筛选,符合复合索引的使用规则,可以大大提升查询性能。