Las subconsultas se ejecutan cada vez que las evalúa (en MySQL de todos modos, no todos los RDBMS), es decir, ¡básicamente está ejecutando 7 millones de consultas! El uso de JOIN, si es posible, reducirá esto a 1. Incluso si agregar indexación mejora el rendimiento de esos, todavía los está ejecutando.