Mysql
 sql >> база данни >  >> RDS >> Mysql

Използването на IN с подзаявка не използва индекс

Можете да видите отговорите на този въпрос Ще ви харесат идеите.

Цитирам някои отговори

Накратко, Опитайте да форсирате индекса:

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

Или използвайте JOIN вместо това и вижте обяснението

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql съхранена процедура, която се извиква рекурсивно

  2. Как да намерите името на таблицата, от която произволно е избрано изображението

  3. Дублирайте запис в MySQL

  4. Настройка на Macports mysql5 под Snow Leopard

  5. Можете ли да се присъедините към подзаявка с Doctrine 2 DQL?