Hola Rivermillos.
Eso podrías tratar de comprobarlo con tu cliente Mysql. Generalmente los clientes te informan cuánto demora una consulta en ejecutarse.
Por eso, escribe allí una consulta y ejecútala: anota cuánto tiempo tardó (generalmente son milisegundos), y luego has lo mismo con la otra. De ahí compara: debieras elegir la que demora menos. Pero a veces ocurre que la demora en la carga es relativa y está sujeta a otros parámetros del servidor (cuánta gente más está conectada, cuántas peticiones está recibiendo al mismo tiempo, por ej.).
En Mysql y otros lenguajes existe una instrucción llamada EXPLAIN. Si la usas puedes también conocer en detalle el esfuerzo que hace tu servidor para ejecutar la consulta. Se usa algo así:
Código:
EXPLAIN SELECT * FROM tabla
Te devuelve una tabla con parámetros. Puedes revisar su significado en la documentación de Mysql:
http://dev.mysql.com/doc/refman/5.0/es/explain.html
De cualquier forma, y volviendo a tu consulta original, el subquery no es malo usarlo mientras la tabla a la que consultes tenga pocos registros. Si tuviese 1 millón, no es para nada conveniente. Aunque igual puedes lograr maravillas si indexas bien la tabla, de modo que se agiliza la consulta en mucho.
Saludos!!