MST

星途 面试题库

面试题:MySQL中索引如何优化排序性能

在MySQL数据库中,假设我们有一张员工表(employees),包含字段id(主键)、name、age、department,现在经常需要按照age字段进行排序查询,如何创建索引来优化这个排序性能?请写出具体的SQL语句,并解释这样做能优化排序性能的原理。
19.5万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试
  1. 创建索引的SQL语句
CREATE INDEX idx_age ON employees(age);
  1. 优化排序性能的原理
    • 当创建了idx_age这个普通索引后,MySQL会在索引结构(通常是B - Tree结构)中维护age字段的值以及对应的行记录的物理地址(或者主键值,对于二级索引)。
    • 当执行按照age字段排序查询时,数据库可以直接利用这个索引。由于索引本身已经按照age值有序存储,数据库无需对全表数据进行扫描和排序,只需要按照索引的顺序读取数据,从而大大减少了排序的工作量,提升了排序查询的性能。