Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So verwenden Sie die Indexeffizienz in einer MySQL-Abfrage

Sie könnten eine Top-N-Abfrage versuchen, um den ersten Kandidaten zu finden, und diesen Kandidaten dann nur auf das tatsächliche Muster anwenden:

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

Die Top-n-Abfrage sollte einen regulären Index auf c1 verwenden.

BEARBEITEN :Erklärt das ausführlicher in meinem Blog:http://blog.fatalmind.com/2010/09/29/finding-the-best-match-with-a-top-n-query/