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

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

 

 

 

 

自己測試的:

 

 

 

需要研究的:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM