sql >> Database >  >> RDS >> Mysql

Hoe deze MySQL-tabel op de meest performante manier opvragen?

U zult een volledige tafelscan moeten doen, dus dit is waarschijnlijk de beste oplossing:

select (case when id in (< your list >) then 'in' else 'out' end) as inlist,
       my_boolean_field, count(*)
from mytable t
group by (case when id in (< your list >) then 'in' else out' end),
         my_boolean_field;

Als je lijst in een tabel met een index staat, dan kun je een left join . gebruiken ben ermee bezig. MySQL optimaliseert echter zoekopdrachten voor in met constante waarden (het gebruikt een binaire zoekopdracht). Dit is dus waarschijnlijk de snelste methode.




  1. Laravel Migratietabel bestaat al, maar ik wil nieuwe toevoegen, niet de oudere

  2. Een navigatieformulier maken in Microsoft Access

  3. Oracle:Wat doet `(+)` in een WHERE-clausule?

  4. MySQL retourneert eerste en laatste record voor opeenvolgende identieke resultaten