准备数据
这里插入了十万条数据,创建了name和code联合索引,还有age索引。mysql版本:8.0.27。
联合索引不满足最左匹配原则
联合索引排序它会首先按照联合索引的第一个列进行排序,然后再按照第二个列进行排序,依此类推,不能跳过前边的列查询直接查询后边的列。
举例:
第一个例子:
EXPLAIN select CODE,name from student where code = 'aaaaaa';
我们的联合索引是name_code。在查询code的时候跳过了name没有遵循最左前缀原则。
结果是:
Using index:索引覆盖。
rows:516,表示估计的结果集的行数或访问的行