sql >> Database teknologi >  >> RDS >> Mysql

Brug af IN med en underforespørgsel bruger ikke indeks

Du kan se svarene på dette spørgsmål Du får gode ideer.

Jeg citerer fra nogle svar

Kort, prøv at tvinge indekset:

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 brug JOIN i stedet og se forklaringen

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. Erstat flere tegn i en streng i SQL Server (T-SQL)

  2. Hvorfor mysql INSERT ... PÅ DUBLIKAT NØGLEOPDATERING kan bryde RBR-replikering på en master/master-konfiguration

  3. MySQL-opdatering ændre flere kolonner er ikke-atomare?

  4. RMySQL installationsproblem med Mysql 5.5