MST

星途 面试题库

面试题:MySQL中如何创建复合索引及应用场景

在MySQL中,假设有一个`employees`表,包含`employee_id`、`department`、`salary`字段。请阐述如何创建一个复合索引,以及在什么样的查询场景下这个复合索引能够提升查询效率,并写出创建复合索引的SQL语句。
19.5万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试
  1. 复合索引概念:复合索引是由多个列组合而成的索引。在MySQL中,复合索引中的列顺序很重要,遵循最左前缀原则。
  2. 提升查询效率的场景
    • 当查询条件经常以复合索引中前导列开始,例如WHERE department = '某部门' AND salary > 10000。如果departmentsalary列组成复合索引,且department在前,这种查询能有效利用索引提升效率。
    • 排序操作,如果ORDER BY department, salary,复合索引可以帮助避免额外的文件排序操作,提升查询性能。
  3. 创建复合索引的SQL语句
CREATE INDEX idx_department_salary ON employees (department, salary);

这里idx_department_salary是自定义的索引名,employees是表名,departmentsalary是组成复合索引的列。