当前位置:网站首页>Left matching principle of joint index

Left matching principle of joint index

2022-07-06 06:14:00 Snow peak expensive

Joint index :

key : ‘index_name_age’(‘name’,‘age’)

scene :

case1:

 select  * from person_info where name='gxf' and age = '18';

At this time, I will go index_name_age Joint index .

case2:

select  * from person_info where name='gxf' ;

At this time, I will go index_name_age Joint index .

case3:

select  * from person_info where age = '18';

here Not going index_name_age Joint index . Will scan the whole table .

Be careful

1. Left most prefix The matching principle

mysql Will match all the way to the right Until I met > 、< 、 between 、like Just stop matching .

where a=1 and b=2 and c=3 and d>4;

If set up index(a,b,d,c) be c There is no index .
If set up index(a,b,c,d) Are available to the index .
If set up index(b,c,a,d) Are available to the index .

2.= and in

You can order

If set up index(a,b,c,d).

where a=1 and b=2 and c=3 and d in(4,5);
where a=1 and d in(4,5) and b=2 and c=3 ;

All can be indexed , because mysql Will optimize your SQL Adjust the order to use the index .

Why? case3 Do not go through the joint index :

 Insert picture description here

hypothesis : Now there is a joint index index(col3,col2);
be , There will be one stored in the joint index file B+ Trees , Leaf nodes store two Alice Row data , And on this basis , According to col2 Sort . final result :34 Of Alice It's in line 77 Of Alice In front of .

Now? where col3 = ‘Alice’ and col2=34; Then the leaf node will be found first , I'll find it again 34. That's the index .

if where col2 = 34; Then the joint index file is saved B+ The tree is useless . That is, you can't go through the index .

原网站

版权声明
本文为[Snow peak expensive]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060607583806.html