問題描述:在使用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走索引的情況:
查詢的字段都得是組合索引中的才行,例如:
自己測試的:
需要研究的: