mysql索引使用like的时候出现的问题

问题描述:在使用like的时候发现没有走预想的索引:

  场景:表community中字段较多,创建了部分索引,如:

       

EXPLAIN select t1.id,t1.baidu_latitude,t1.baidu_longitude,t1.community_name_alias,t1.community_address_alias FROM community t1  WHERE t1.city_id= 110100 and t1.baidu_latitude like '31.238%' and t1.baidu_longitude like '121.46%'

具体分析如下:

知道like在某些情况下是不会使用索引的,但是有些情况是走索引的:例如:

like '%keyword%'或者like '%keyword'是不会走索引的,但是当like 'keyword%'也不一定就会走索引,这样看具体情况,如果select中查询了其他字段【就是这个字段没有在这个like所引用的组合索引或者索引字段中,除了id字段之外】这样的情况就不会走索引,如果想要走自己想要的索引,可以添加上force index(ziduan1_index),这样就可以了,例如:

使用like走索引的情况:

查询的字段都得是组合索引中的才行,例如:

自己测试的:

需要研究的:

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值