什么是索引的最左前缀法则

最左前缀法则:如果索引有多列,如:联合索引,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且不跳过索引中的列,否则将用不到索引。

EXPLAIN SELECT * FROM employees WHERE age = 22 AND position ='manager'。

EXPLAIN SELECT * FROM employees WHERE position = 'manager'。

EXPLAIN SELECT * FROM employees WHERE name = 'LiLei'。

1.1 最左前缀法则

上面我们将表name, age  , position 三个字段组成的联合索引,下面使用如下sql进行查询

 

 

 

 

思考,上面的那三个sql语句,那个能能使用索引,哪些不能?为什么?

 

 

1.2 分析

通过explain关键字分析,key有值,表示,走了联合索引,否则没有走索引

 

 

 

 

只有第一条sql能触发索引,因为,他符合最左前缀法则,

联合索引也是使用B+树的结构来存储数据的,where后面的查询条件,如果,首先是非name字段,如果是age=30,那么,

去查询b+树的时候,所有节点并不是根据age字段由小到大进行排序的,只能做全表扫描,因为,联合索引节点,是先根据name字段排序的。

 

posted on 2022-11-16 13:38  weiqinshian  阅读(705)  评论(0编辑  收藏  举报