什么是索引的最左前缀法则
最左前缀法则:如果索引有多列,如:联合索引,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且不跳过索引中的列,否则将用不到索引。
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) 编辑 收藏 举报