mysql最左原则,最左前缀匹配原则

目录

一、个案研究

二、最左边匹配原则的概念

三.最左边匹配原则的原因

一、个案研究1.假设数据库存在一个联合索引键:

2.使用查询语言

3.使用explain分析:

我发现有联合索引键

4.如果只查询area

发现了,依然走着联合索引键

5.但是如果将area删掉,只查title

发现没有进行索引,正在进行全表扫描

6.结论:

只有包含索引关键字左侧的查询(area )才会跟踪合并索引

这是最左边一致原则的例子

二、最左边匹配原则的概念1.mysql会一直向右匹配直到遇到范围查询

(、between、like )停止匹配

-例如:

创建联合索引(a、b、c、d ),如果查询a=3 and b=4 and c5 and d=6,d不可用于索引

但是,只要生成(a、b、d、c ),就可以全部使用,abd的顺序可以任意调整

2. = 和 in 可以乱序

例如,可以按任意顺序创建a=1andb=2andc=3(a、b、c )索引。 mysql查询优化程序可以优化为索引可以识别的形式

三.最左边匹配原则的原因

如图所示:

从虚幻水壶索引中查找所有虚幻水壶叶的节点,按clo2排序查找时,clo3和clo2的统一索引需要clo3,不能只通过clo2进行统一索引。

最左匹配原则的成因:

1.Mysql创建联合索引是首先会对最左边,也就是第一个索引字段进行排序

2.在第一个排序的基础上,再对第二个索引字段进行排序,其实就像是实现了Order by字段1,再Order by 字段2这样一种排序规则

3.所以第一个字段是绝对有序的,而第二个字段就是无序的了

4.因此通常情况下,直接使用第二个字段进行条件判断是用不到索引的。这就是为什么mysql要强调最左匹配原则的成因。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平