Mysql的子查詢實現得非常糟糕,最糟糕的一類查詢是where條件中包含In()的子查詢語句。
select * from cteam where pid in (select boss_id from mteam where boss_id = 123456)
缺點:Mysql會將相關的外層表壓到子查詢中,它認為這樣可以更高效查找到數據行

根據explain的輸出我們可以看到,Mysql先選擇對cteam表進行全表掃描,然后根據返回的pid逐個執行子查詢,如果是一個很小的表,這個查詢糟糕的性能可能還不會引起注意,但是如果
外層的表是一個非常大的表,那么這個查詢的性能會非常糟糕。
重新SQL語句:
select c.* from cteam c right join mteam m on c.pid = m.boss_id where m.boss_id = 123456

