Usare temporaneo significa che MySQL deve utilizzare alcune tabelle temporanee per memorizzare i dati intermedi calcolati durante l'esecuzione della query.
L'uso di filesort è un algoritmo di ordinamento in cui MySQL non è in grado di utilizzare un indice per l'ordinamento e quindi non può eseguire l'ordinamento completo in memoria. Invece suddivide l'ordinamento in blocchi più piccoli e quindi unisce i risultati per ottenere i dati ordinati finali.
Fare riferimento a http://dev.mysql.com/ doc/refman/5.0/en/explain-output.html .
Penso che potresti utilizzare un ORDER BY più una tabella derivata o una sottoquery. Sarebbe fantastico se potessi incollare la tua query e le informazioni relative a tabelle/indici e l'output EXPLAIN.