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走索引的情况:

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

 

 

 

 

自己测试的:

 

 

 

需要研究的:

 

 

posted @ 2019-01-17 19:14  寻水的鱼001  阅读(1669)  评论(0编辑  收藏  举报