EXPLAIN SELECT SQL_NO_CACHE * FROM student WHERE student.age = 30 AND student.name='abcd';
复制代码
答案是 会,但是只会用一部分。看看实验效果
利用了 idx_age_classid_name,但是 key_len 是 5,也就是说只利用了 age 部分的排序,由于 age 是 int 范例,4 个字节加上 null 值列表一共 5 个字节。由于 B+树 是先按照 age 排序,再按照 classid 排序,最后按照 name 排序,因此不能跳过 classId 的排序直接就利用 name 的排序。