sql >> Databasteknik >  >> RDS >> Mysql

Hur man använder index efficienty i mysql-fråga

du kan prova en Top-N-fråga för att hitta den första kandidaten och sedan tillämpa den kandidaten endast på det faktiska mönstret:

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

top-n-frågan bör använda ett vanligt index på c1.

REDIGERA :Förklarade det mer i detalj i min blogg:http://blog.fatalmind.com/2010/09/29/finding-the-best-match-with-a-top-n-query/



  1. Åtgärda felet "ORA-01789:frågeblocket har felaktigt antal resultatkolumner"

  2. Hur kan jag VÄLJA rader med MAX(kolumnvärde), PARTITION efter en annan kolumn i MYSQL?

  3. ODBC-anrop misslyckades med lagrad procedur - Skicka igenom förfrågan

  4. När spolar SQL Server-sorter tillbaka?