当前位置:网站首页>联合索引的左匹配原则
联合索引的左匹配原则
2022-07-06 06:08:00 【雪峰.贵】
联合索引:
key : ‘index_name_age’(‘name’,‘age’)
场景:
case1:
select * from person_info where name='gxf' and age = '18';
此时会走 index_name_age 联合索引。
case2:
select * from person_info where name='gxf' ;
此时会走 index_name_age 联合索引。
case3:
select * from person_info where age = '18';
此时不会走 index_name_age 联合索引。会全表扫描。
注意
1.最左前缀 匹配原则
mysql会一直向右匹配 直到遇到 > 、< 、 between 、like 就停止匹配。
where a=1 and b=2 and c=3 and d>4;
如果建立 index(a,b,d,c) 则c是用不到索引的。
如果建立 index(a,b,c,d) 则都可用到索引。
如果建立 index(b,c,a,d) 则都可用到索引。
2.= 和 in
可以乱序
如果建立 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 ;
都可走索引,因为mysql会优化你的SQL把顺序调整成可以使用索引的形式。
为什么case3不走联合索引:
假设:现在有个联合索引 index(col3,col2);
则,联合索引文件里就会存储一个B+树,叶子节点会存储两个Alice的行数据,并且会在此基础上,再根据col2排序。最终结果:34的Alice排在了77的Alice的前面。
现在 where col3 = ‘Alice’ and col2=34; 则会先找到叶子节点,再去找34。即走了索引。
若 where col2 = 34;则这个联合索引文件存的B+树就用不了了。即不能走索引。
边栏推荐
猜你喜欢
The latest 2022 review of "graph classification research"
nodejs实现微博第三方登录
Hypothesis testing learning notes
[paper reading] nflowjs: synthetic negative data intensive anomaly detection based on robust learning
【无App Push 通用测试方案
Buuctf-[bjdctf2020]zjctf, but so (xiaoyute detailed explanation)
How Huawei routers configure static routes
二维码的前世今生 与 六大测试点梳理
[web security] nodejs prototype chain pollution analysis
The difference and usage between continue and break
随机推荐
Function of contenttype
Web service connector: Servlet
Title 1093: character reverse order
MySQL之基础知识
Reading notes of effective managers
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
[course notes] Compilation Principle
【微信小程序】搭建开发工具环境
JMeter做接口测试,如何提取登录Cookie
As3013 fire endurance test of cable distribution system
Grant Yu, build a web page you want from 0
Database: ODBC remote access SQL Server2008 in oracel
leaflet 地图
【无标题】
Buuctf-[gxyctf2019] no dolls (xiaoyute detailed explanation)
Function of activation function
【eolink】PC客户端安装
Arrays and collections
[postman] collections configuration running process
LeetCode 731. 我的日程安排表 II