Salve ragazzi,
ho due tabelle: NEWS e COMMENTS e creo una tabella che mi raccolga le notizie più commentate così:
Mi tira fuori correttamente l'id della news e accanto i commenti, sono le ultime 5 ed è tutto giusto. Solo che no ho notato che facendo Explain mi fa un filesort.codice:SELECT NEWS.ID_NEWS, (SELECT COUNT(*) FROM COMMENTS WHERE NEWS.ID_NEWS = COMMENTS.ID_NEWS) AS NUM_COMMENTI FROM NEWS WHERE NEWS.LANG_ita = 0 AND NEWS.TIMESTAMP >= DATE_SUB('2013-01-09', INTERVAL 1 WEEK) ORDER BY NUM_COMMENTI DESC LIMIT 0,5
A questo punto mi chiedo, dato che mi sto scervellando da tutta la sera, è inevitabile avere un filesort quando si fa un count e c'è da ordinare le righe?
Ho messo gli indici sia su News che su Comments ma il problema sta in quell'ORDER BY NUM_COMMENTS, che è un numero che non ho in nessuna tabella fisicamente.
Grazie mille![]()

Rispondi quotando