sql >> Database >  >> RDS >> Mysql

IN gebruiken met een subquery maakt geen gebruik van index

U kunt de antwoorden op deze vraag Je zult goede ideeën hebben.

Ik citeer uit enkele antwoorden

In het kort, probeer de index te forceren:

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));

Of gebruik in plaats daarvan JOIN en bekijk de uitleg

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. SQL Server Azure/2022 Database Ledger-tabellen van Linux.

  2. PostgreSQL VALUES-opdracht uitgelegd

  3. Hoe FRD-tracering te genereren in Oracle Apps 11i/R12

  4. wat heeft het voor zin om arrays te serialiseren om ze in de db op te slaan?