天天看點

MySQL子查詢的性能問題

最近遇到一個MySQL的性能問題,一個SQL語句,在10000條左右資料中查詢,使用了子查詢方式,結果巨慢(40~50秒),語句類似于如下:

select a.id from t_ne a where a.ip in

               (select b.ip from t_ne b group by b.ip having count(b.num) > 1)

轉換為join後快了很多(幾百毫秒):

select a.id from t_ne a join

               (select b.ip from t_ne b group by b.ip  having count(b.num) > 1) c on a.ip = c.ip

我再換用Oracle測試,明顯沒有這麼大的性能瓶頸,這說明MySQL(5.1.45)的查詢引擎對子查詢的處理有嚴重的性能問題?!