1. 連表查詢或采用臨時(shí)表會(huì)走索引
參考:解決MySQL中IN子查詢會(huì)導(dǎo)致無(wú)法使用索引問(wèn)題
2. 如果 in 的選擇性較少,可采用union
select a, b , c, d from T where b in ( x1, x2,x3) ;
select a, b , c, d from T where b =‘x1' union
select a, b , c, d from T where b =‘x2' union
select a, b , c, d from T where b =‘x3';
- 在b列的選擇性較小時(shí)粘优,走不走索引對(duì)性能是影響不大的
參考:mysql in 不走索引的思考(有點(diǎn)疑問(wèn),mysql in 就是不走索引呻顽,還是選擇性小的時(shí)候就不走) - 另:mysql in 和or 所在列如果沒有索引雹顺。in的效率比or的高
- 另: mysql的in會(huì)讓索引失效嗎?(實(shí)例)
3. 測(cè)試
暫 pass廊遍,明日更