MST

星途 面试题库

面试题:MySQL索引在单表简单查询优化中的应用

假设有一张员工表employees,包含字段id(主键)、name、age、department。现在要查询年龄大于30岁且在‘研发部’的员工信息,如何创建合适的索引来优化这个查询?请写出创建索引的SQL语句,并解释原因。
16.1万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

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