請參閱下面的查詢。我應該在表上創建哪個索引,以便查詢將使用索引並避免使用臨時文件和文件夾?我已經嘗試了許多不同的指數組合,並閱讀advice here,但我似乎無法弄清楚。我解釋說,要麼Using Where
(無指標),或Using Where Using Temporary, Using Filesort
MySQL索引爲分組/ By Order
下面是一個簡單的查詢。所有列都是整數。
SELECT c1, Sum(c2)
FROM table
WHERE c3 IS NOT NULL
AND c4 = 2011
AND c5 = 0
AND c6 In (6,9,11)
GROUP BY c1
請記住,MySQL只能爲每個表使用一個索引,所以如果您在列上放置索引來優化GROUP BY,您可能最終會傷害到自己,因爲WHERE子句未優化,最終有更多工作要完成(即全表掃描)。 –
我明白,但是有什麼辦法可以創建一個可以被GROUP BY和WHERE子句使用的索引嗎? – bradvido