sql >> Databáze >  >> RDS >> Mysql

Pomocí indexu, pomocí dočasných, pomocí řazení souborů - jak to opravit?

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ě".



  1. Jak funguje funkce WEIGHT_STRING() v MySQL

  2. Jak nainstalovat SQL Server na Mac

  3. Názvy časových pásem s identickými vlastnostmi poskytují při použití na časové razítko jiný výsledek

  4. Nastavení vyšší velikosti Oracle načítání řádků zpomalí moji aplikaci?