1. 程式人生 > >mysql in的效率問題

mysql in的效率問題

mysql 初級入門狗 被學長們教育了一頓決定寫個東西記錄一下   

select  *from a where id in (select id from b);

這麼寫sql 語法上是沒問題的  但是一定會被老大罵死  這麼寫效率能低還到死  很容易就10幾秒才跑完

原因還沒研究太明白,不敢亂寫 只寫幾個解決方案吧 

1 將語句分成兩個來寫   把select id from b 單提出來

2 將上述語句改成這樣子select  *from a where id in (select  id from (select id from b) as tbt );

3 直接使用left join   select a.* from a left join (select  id from b) m on a.id=b.id;

這幾種都是解決方案  但是大神們都普遍推薦第一種  而且都希望不用in   後續補充in 效率低得原因到底是啥