Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como usar o índice de forma eficiente na consulta mysql


você pode tentar uma consulta Top-N para encontrar o primeiro candidato e, em seguida, aplicar esse candidato apenas ao padrão real:
select 1 
  from (select c1 
          from junk 
         where c1 <= 'fxg87698x84'
         order by c1 desc limit 1) tmp 
 where 'fxg87698x84' like concat(c1, '%');

a consulta top-n deve usar um índice regular em c1.

EDITAR :Expliquei isso com mais detalhes no meu blog:http://blog.fatalmind.com/2010/09/29/finding-the-best-match-with-a-top-n-query/