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

Come utilizzare l'efficienza dell'indice nella query MySQL

potresti provare una query Top-N per trovare il primo candidato e quindi applicare quel candidato solo al modello effettivo:

select 1 
  from (select c1 
          from junk 
         where c1 <= 'fxg87698x84'
         order by c1 desc limit 1) tmp 
 where 'fxg87698x84' like concat(c1, '%');

la query top-n dovrebbe utilizzare un indice regolare su c1.

MODIFICA :L'ho spiegato in modo più dettagliato nel mio blog:http://blog.fatalmind.com/2010/09/29/finding-the-best-match-with-a-top-n-query/