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

Come velocizzare le query SELECT .. LIKE in MySQL su più colonne?

Un indice non velocizzerebbe la query, perché per le colonne testuali gli indici funzionano indicizzando N caratteri a partire da sinistra. Quando fai MI PIACE '%text%' non può usare l'indice perché può esserci un numero variabile di caratteri prima del testo.

Quello che dovresti fare è non usare affatto una query del genere. Invece dovresti usare qualcosa come FTS (Full Text Search) che MySQL supporta per le tabelle MyISAM. È anche abbastanza facile creare da soli tale sistema di indicizzazione per tabelle non MyISAM, hai solo bisogno di una tabella di indice separata in cui memorizzi le parole e i loro ID pertinenti nella tabella effettiva.

Aggiorna

Ricerca full-text disponibile per tabelle InnoDB con MySQL 5.6+.