面试题答案
一键面试- 创建索引的SQL语句:
CREATE INDEX idx_age_department ON employees (age, department);
- 原因解释:
- 该查询条件为年龄大于30岁且部门为‘研发部’。复合索引
(age, department)
的顺序很重要,MySQL的索引使用遵循“最左前缀原则”。 - 先按照
age
进行排序,对于age
相同的记录,再按照department
排序。这样在查询年龄大于30岁且在‘研发部’的员工信息时,数据库可以快速定位到符合age > 30
的记录,然后在这些记录中进一步筛选出department
为‘研发部’的记录,从而大大减少需要扫描的数据量,提高查询效率。
- 该查询条件为年龄大于30岁且部门为‘研发部’。复合索引