问题描述:在使用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走索引的情况:
查询的字段都得是组合索引中的才行,例如:
自己测试的:
需要研究的: