Le sottoquery vengono eseguite ogni volta che le valuti (in MySQL comunque, non tutti gli RDBMS), ovvero stai praticamente eseguendo 7 milioni di query! L'utilizzo di un JOIN, se possibile, ridurrà questo valore a 1. Anche se l'aggiunta dell'indicizzazione migliora le prestazioni di quelli, li stai ancora eseguendo.