Mysql
 sql >> Database >  >> RDS >> Mysql

Perché un indice può rendere una query davvero lenta?

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.