L'indicizzazione regolare non può essere utilizzata per migliorare la query. Gli indici MySQL sono B-tree, il che significa che possono trovare un prefisso della colonna indicizzata molto rapidamente. Ma dal momento che il tuo LIKE
la query ha %
all'inizio, non c'è un prefisso univoco da cercare. Quindi ogni riga deve essere scansionata in modo che corrisponda allo schema.
Tuttavia, MySQL supporta anche la ricerca full-text. Questo crea un indice di tutte le parole nella colonna e può trovare queste parole rapidamente. Consulta la documentazione per i dettagli.
Se usi LIMIT 10
, interromperà la scansione non appena trova le prime 10 righe che soddisfano le condizioni. A meno che non utilizzi anche ORDER BY
-- quindi deve trovare tutte le righe in modo da poterle ordinare prima di selezionare le prime 10.