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

Quando si esegue EXPLAIN, se il valore del campo per la chiave non è nullo ma Extra è vuoto, la chiave viene utilizzata?

Using index non significa quello che pensi significhi. Se è presente nel Extra colonna, indica che l'ottimizzatore non sta effettivamente leggendo le intere righe, sta usando l'indice (esclusivamente) per trovare le informazioni sulla colonna.

La chiave potrebbe essere ancora in uso per altre cose, ad esempio per eseguire ricerche se hai un WHERE clausola ecc. Nel tuo scenario specifico, ad esempio, la scomparsa di Using temporary; in realtà significa che il tuo indice viene utilizzato, dal momento che MySQL non ha più bisogno di riorganizzare il contenuto della tua tabella in una nuova tabella temporanea per eseguire il GROUP BY .