Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die Verwendung von IN mit einer Unterabfrage verwendet keinen Index

Sie können die Antworten auf diese Frage Sie werden gute Ideen haben.

Ich zitiere aus einigen Antworten

Versuchen Sie kurz, den Index zu erzwingen:

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

Oder verwenden Sie stattdessen JOIN und sehen Sie sich die Erklärung an

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;