2015-02-08 49 views
1

我有過(實際上,它是一個複雜的查詢的一部分。不過,我提取它只是表明我有問題)MySql的GROUP BY +在性能上

SELECT 
    bar.foo, count(1) 
FROM 
    bar 
WHERE 
    bar.baz in ("1", "2", "3", "4", "5") 
GROUP BY 
    bar.foo; 

與此問題的查詢查詢是它是「使用臨時;使用filesort」

我有一個bar.baz索引。但是,由於IN操作符,它看起來沒有幫助。

我看到在這種情況下推薦使用簡單where語句(bar.baz = 1)將其分解爲多個查詢,並使用JOIN。但是,它不適合我,因爲這些「1」,「2」等實際上是由子查詢返回的。

我很好奇。有沒有辦法避免這裏的文件?

回答