sql >> Databasteknik >  >> RDS >> Mysql

Att använda IN med en underfråga använder inte index

Du kan se svaren på den här frågan Du kommer att få bra idéer.

Jag citerar från några svar

Kortfattat, försök tvinga fram indexet:

SELECT *
FROM mapping_channel_fqdn_virtual_host FORCE INDEX (name of the index you want to use)
WHERE (mapping_channel_fqdn_virtual_host.id IN (1,2,3,4,5,6,7,8,9,10));

Eller använd JOIN istället och se förklaringen

SELECT * FROM mapping_channel_fqdn_virtual_host mcf
JOIN (select max(id) as ids from mapping_channel_fqdn_virtual_host group by channel_id, fqdn_virtual_host_id)) AS mcfv 
ON mcf.id = mcfv.ids;



  1. Varför lagras min float i MYSQL som .9999 när den är större än 1?

  2. Kolla in de senaste nyheterna om Microsoft Access, inklusive Access 2022!

  3. Postgres och index på främmande nycklar och primärnycklar

  4. Generera PL/SQL-procedur online för att importera data i Oracle Table