Подзапросы вложенные в IN вида ( SELECT … IN ( SELECT …) ) в mysql работают очень медленно. Хотя по отдельности они обрабатываются довольно шустро.
Дело в том, что Mysql не умеет автоматически их оптимизировать.
Поэтому для их ускорения для начала необходимо проверить наличие ключей по полям участвующим в запросе. И следующим шагом требуется переписать данный запрос с помощью JOIN.
Читать далее