sql >> Databáze >  >> RDS >> Mysql

Jak efektivně používat index v dotazu mysql

můžete zkusit dotaz Top-N k nalezení prvního kandidáta a poté použít tohoto kandidáta pouze na skutečný vzor:

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

top-n dotaz by měl používat běžný index na c1.

UPRAVIT :To jsem vysvětlil podrobněji v mém blogu:http://blog.fatalmind.com/2010/09/29/finding-the-best-match-with-a-top-n-query/



  1. Jak připojit pracovní stůl mysql ke spuštění mysql uvnitř dockeru?

  2. Fond připojení pro databázi '/data/data/msv_database.db' nemohl udělit připojení. Připojení:0 aktivní, 1 nečinné, 0 dostupných

  3. Výkonnostní překvapení a předpoklady:DATEDIFF

  4. Jak mohu uvést, že má stejná data ID jako smyčka while v PHP?