Non ho capito la domanda. MySQL usa i covering index solo se tutti i campi che deve leggere sono indicizzati, altrimenti dovrà leggere anche i dati. Se fai SELECT id WHERE nome='x' e nome è indicizzato, l'indice è "covering" per questa query. Se selezioni anche un campo che non è indicizzato, l'indice non è covering.
Mi stai chiedendo se conviene fare un indice di 100 campi? No, occuperebbe tanta memoria e le operazioni di lettura dell'indice sarebbero più lente.
I covering index fanno la differenza se devi leggere molte righe.
In generale l'indice deve essere as small as possible. E' giusto aggiungere una colonna solo se ci sono dei vantaggi. Ma in questo caso, tutti e due i query plan sono praticamente perfetti. (a parte la lunghezza dell'indice slug)
Ciao![]()


Rispondi quotando