Nota che il termine MySQL filesort non significa necessariamente che scriva sul disco. Significa solo che verrà ordinato senza utilizzare un indice. Se il set di risultati è sufficientemente piccolo, MySQL lo ordinerà in memoria, che è di ordini di grandezza più veloce dell'I/O del disco.
Puoi aumentare la quantità di memoria allocata da MySQL per i filesort in memoria utilizzando sort_buffer_size
variabile server. In MySQL 5.1, la dimensione predefinita del buffer di ordinamento è 2 MB e il massimo che puoi allocare è 4 GB.
aggiornamento: Per quanto riguarda il commento di Jonathan Leffler sulla misurazione della durata dell'ordinamento, puoi imparare a utilizzare SHOW PROFILE FOR QUERY
che ti darà la ripartizione di quanto tempo impiega ogni fase di esecuzione della query.