mysql组合索引的最左原则实例分析

一.mysql5.7.26,字段有id,col1,col2,col3,col4,col5。id主键索引,对列col1、列col2和列col3建一个联合索引test_col1_col2_col3 (联合索引 test_col1_col2_col3 实际建立了(col1)、(col1,col2)、(col,col2,col3)三个索引),100条数据做测试,数据格式如下:where条件如下,
数据格式
where条件如下:
1.col2=‘安徽’ (不走索引)
在这里插入图片描述
注:建立联合索引时会遵循最左前缀匹配的原则,组合索引的第一个字段必须出现在查询组句中,这个索引才会被用到
2.col3=‘赵英明’ and id=2 或id=2 and col3=‘赵英明’ (id走索引)
在这里插入图片描述
3.col1=‘057128256072’ and col2=‘浙江’ and col3 like ‘%俞磊’ (col1,col2走索引)
在这里插入图片描述
注:优化查询条件一批匹配索引的位置,直到遇到范围查询(>、<、between、like)就停止匹配
4.col2=‘浙江’ and col1=‘057128256072’ 或col1=‘057128256072’ and col2=‘浙江’ (都走索引)
在这里插入图片描述
注:索引的字段可以是任意顺序的,会对联合合索引的最左边的,也就是第一个字段col1的数据进行排序,在第一个字段的排序基础上,然后再对后面第二个字段col2进行排序。其实就相当于实现了类似 order by col1 col2这样一种排序规则。
5.col1=‘055165217615’ and col5=0 and col2=‘安徽’ (col1,col2用索引)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值