Bli av med "using temporary"

Databaser & SQL

1 svar · 199 visningar · startad av Mungo

Medlem sedan jan. 2000372 inlägg
Trådstart#1

Ja, just det. Jag har en SQL-fråga som tar lite lång tid, och enligt EXPLAIN SELECT så kör mysql "using temporary, using filesort".

Vad exakt betyder detta, och vad kan jag göra för att slippa det så att min fråga kanske går lite snabbare? :)

Medlem sedan juni 20019 024 inlägg
#2

"Using temporary" innebär att det skapas en temporärtabell för att skyffla och sortera data i den ordningen du önskar, på grund av en komplex sql-fråga.

"using filesort" är en extra läsning av posterna i alla joinade tabeller för att de ska kunna sorteras korrekt.

Kort sagt är detta "inte bra", utan kan (förhoppningsvis) optimeras.

Läs mer på http://www.mysql.com/doc/en/EXPLAIN.html

249 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)