No, doc uvádí přesné důvody, kdy se objeví „Using dočasné“:
Dočasné tabulky lze vytvořit za podmínek, jako jsou tyto:
Pokud existuje klauzule ORDER BY a jiná klauzule GROUP BY nebo pokud ORDER BY nebo GROUP BY obsahuje sloupce z jiných tabulek než první tabulka ve frontě spojení, vytvoří se dočasná tabulka.
DISTINCT v kombinaci s ORDER BY může vyžadovat dočasnou tabulku.
Pokud použijete volbu SQL_SMALL_RESULT, použije MySQL in-memorytemporary tabulku, pokud dotaz neobsahuje také prvky (describedlater), které vyžadují úložiště na disku.
Rychlé skenování ukazuje, že trpíte číslem 1.
A tento blog z roku 2009 říká, že "using filesort" znamená, že řazení nelze provést pomocí indexu. Vzhledem k tomu, že objednáváte podle počítaného pole, bude to také pravda.
Tak to je to, co je "špatně".