Perché è comunque necessario leggere tutti i dati sia da index che da file di dati. Dal momento che non stai utilizzando alcun where
condizione:avrai sempre il piano di query, che accede a tutti i dati, riga per riga e non puoi farci nulla.
Se le prestazioni sono importanti per questa query e vengono eseguite spesso, suggerirei di memorizzare nella cache i risultati in una tabella temporanea e aggiornarla ogni ora (giornaliera, ecc.).
Perché diventa più lento:perché in index i dati sono già ordinati e quando mysql calcola il costo dell'esecuzione della query pensa che sarà meglio usare i dati già ordinati, quindi raggrupparli, quindi calcolare gli aggregati. Ma non è in questo caso.