Mysql中什么是最左前缀原则?

Mysql中什么是最左前缀原则?,第1张

这是针对MySQL的索引而言。

单个字段索引时,采用该索引字段进行模糊查询时,只有左边没有%时,该索引才其效果。

请点击输入图片描述

在组合索引中,必须按字段顺序写查询条件,否则就会让索引失效,这也是最左前缀原则之一。如下:

请点击输入图片描述

索引最左原则:

如果A B C建索引:

查找走索引:

A。

A B。

A B C。

其他不走索引:

比如:

B C 。

B。

C。

1、普通索引:CREATE INDEX Student_ID ON Student(ID )

2、唯一索引:CREATE UNIQUE  INDEX Student_ID2 ON Student(ID )

3、组合索引:CREATE UNIQUE  INDEX Student_ID3 ON Student(NAME,AGE,PHONE )

组合索引:上面的组合采用最左原则相当于建立了:NAME,AGE,PHONE      NAME,AGE    NAME

select * from  Student where  NAME=‘小明 ’  and  age =‘12’  执行索引。

SELECT * FROM Student WHERE name like'admin%'  执行索引。

select * from  Student where   age =‘12’ and phone=‘123’  不执行索引。

SELECT * FROM Student WHEREt Name like'%admin'  不执行索引。

扩展资料:

1、简单说下什么是最左匹配原则

顾名思义:最左优先,以最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询(>、<、between、like)就会停止匹配。

例如:b = 2 如果建立(a,b)顺序的索引,是匹配不到(a,b)索引的;但是如果查询条件是a = 1 and b = 2或者a=1(又或者是b = 2 and b = 1)就可以,因为优化器会自动调整a,b的顺序。

再比如a = 1 and b = 2 and c >3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,因为c字段是一个范围查询,它之后的字段会停止匹配。

2、最左匹配原则的原理

最左匹配原则都是针对联合索引来说的,所以我们有必要了解一下联合索引的原理。了解了联合索引,那么为什么会有最左匹配原则这种说法也就理解了。

我们都知道索引的底层是一颗B+树,那么联合索引当然还是一颗B+树,只不过联合索引的健值数量不是一个,而是多个。构建一颗B+树只能根据一个值来构建,因此数据库依据联合索引最左的字段来构建B+树。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6661469.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存