Jan: 8-fache Laufzeit wenn 'order by' angegeben

Beitrag lesen

Und das kann ja irgendwie nicht angehen ... also mach ich wohl irgendetwas falsch.

Meine Tabelle (noch'n Forum) schaut so aus:

idpost idref name

wobei idref 0 ist oder sich auf den Post bezieht, auf den Name geantwortet hat.
Ich möchte nun all die Posts erhalten, in denen Hans auf Fritz geantwortet hat.

Mein select lautet:

SELECT f_post.idpost
 FROM f_post,  f_post as t2
 where f_post.idref=t2.idpost
 and  f_post.name like 'Hans'
 and t2.name like 'Fritz'
 and f_post.idref > 0
 order by f_post.idpost desc;

Die Abfrage dauert (bei 54.000 Sätzen) laut php-myadmin 2,44 Sekunden und zeitigt 147 Ergebnisse.
Lasse ich das 'order by' weg ... bzw ersetze das 'desc' durch 'asc' dauert die gleiche Abfrage lediglich 0,315 Sekunden.

... Ich die meine 147 Sätze sortiere ich im php ja in einer 1/100.000 Sekunde ... wieso braucht mysql dafür volle zwei Sekunden?

Gruss, Jan