在 MySQL 中如果创建了符合索引,例如创建复合索引(name,salary,dept),就相当于创建了(name,salary,dept)、(name,salary)和 (name) 三个索引,这被称为复合索引前导列特性,因此在创建复合索引时应该将从常用作为查询条件的列放在最左边,依次递减。以下列举除了未使用索引的情况和使用索引的情况:
# 未使用索引
select * from employee where salary=8000;
select * from employee where dept='部门A';
select * from employee where salary=8000 and dept='部门A';
# 使用索引
select * from employee where name='张三';
select * from employee where name ='张三' and salary=8000;
select * from employee wherename ='张三' and salary=8000 and dept='部门A';
select * from employee wherename ='张三' and dept='部门A';