Problem using_filesort

Schumiel

Erfahrenes Mitglied
PHP:
SELECT he,ga FROM sp WHERE (idh = '27' OR idg = '27') AND sai = '30' AND vh != '-1' ORDER BY sptag DESC LIMIT 1

Hallo,

die obige Abfrage gibt mir bei EXPLAIN immer wieder ein "using_filesort" aus und dementsprechend lang wird die Abfrage auch bearbeitet.

Ich habe ein index auf idh, idg, sai und vh. Das sollte doch ausreichen?
 
Wie viele Datensätze sind denn in der Tabelle? Die müssen alle in den Hauptspeicher geladen werden und "von Hand" vom DBMS sortiert werden. Möglicherweise noch mit Paging, weil es zu viele sind.
Und am Ende lässt du dir nur eine Zeile davon geben, aber dafür muss trotzdem sortiert werden.

Wie schnell ist die Abfrage ohne ORDER BY ?
 
Es sind mehrere verschachtelte Abfragen. Ohne ORDER BY geht das alles relativ fix, aber mit muss ich erstmal das richtige Indexieren finden. Eine Abfrage will nicht so, wie ich gern möchte.

Also insgesamt komme ich auf 2 Minuten, denn es sind insgesamt 5 verschiedene Mails mit insgesamt 6000 Usern.
 
Zurück