sql >> Base de Datos >  >> RDS >> Mysql

Cómo usar la eficiencia del índice en la consulta mysql

podría probar una consulta Top-N para encontrar el primer candidato y luego aplicar ese candidato solo al patrón real:

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

la consulta top-n debe usar un índice regular en c1.

EDITAR :Expliqué eso con más detalle en mi blog:http://blog.fatalmind.com/2010/09/29/finding-the-best-match-with-a-top-n-query/