mysql8的版本中,最左前缀法则已经不适用了,mysql8采用了索引跳跃扫描,当有a-b索引时候,where条件后面跟的是b,没有a字段,mysql8将自动的穷举出所有a的字段类型,然后和b字段进行比配,然后这个联合索引将不会失效,但是这样的条件,只适合那种,a字段的类型不多,如果a字段的类型过多,mysql8将考虑采用全表扫描方式,不再走索引
上图:
where条件后面只有age字段,但是key索引最后还是走了name-age索引
mysql8的版本中,最左前缀法则已经不适用了,mysql8采用了索引跳跃扫描,当有a-b索引时候,where条件后面跟的是b,没有a字段,mysql8将自动的穷举出所有a的字段类型,然后和b字段进行比配,然后这个联合索引将不会失效,但是这样的条件,只适合那种,a字段的类型不多,如果a字段的类型过多,mysql8将考虑采用全表扫描方式,不再走索引
上图:
where条件后面只有age字段,但是key索引最后还是走了name-age索引