MySQL索引的最左前缀匹配原则是指使用联合索引时,查询条件必须从索引的最左列开始匹配。联合索引包含多个列,查询时必须先有第一个列的条件,然后是第二个列,以此类推。
这是因为联合索引在B+树中的排列方式是”从左到右”的顺序。比如联合索引(first_name,1ast_name,age)会先按first_name 排序,first_name 相同再按last_ name 排序,last_name 相同再按age 排序。
MySQL查找时会优先用first name 作为匹配依据,然后依次用 last name 和age。跳过最左侧字段,后面的列在B+树中是无序的,压根没法利用索引快速定位。