Questa domanda si basa su alcuni test che ho svolto di recente per comprendere meglio il sistema di indicizzazione SQL.
Tabella con voci 500k, motore InnoDB
Questa è una query di selezione semplice su un campo varchar
. La colonna name
è non indicizzata.
Dopol'indicizzazione,questisonoirisultati:
Tutto bene fino a questo punto. Quando provo a inserire un carattere jolly all'inizio della chiave di ricerca, anche se la colonna è indicizzata, il tempo del risultato è quello del caso non indicizzato:
Mi chiedo perché sta succedendo questo? È perché l'indice non può più essere usato? Questo è risolvibile in alcun modo? posso ottenere un tempo di ricerca migliore anche se sto usando %
sia all'inizio che alla fine della stringa di ricerca?
Grazie!