La suconsulta que describo en el segundo caso hace, en realidad, que la salida de la primera opere como tabla de lectura, pero como ya está leída y almacenada en el buffer de consultas, la salida es más rápida.
Además, la operación que mayor tiempo insume es SIEMPRE el ordenamiento, y en segundo puesto el HAVING. Como el ordenamiento se hace en la medida que se barre la tabla, el overheld de la lectura del disco en la segunda es inexistente.
Una consulta de ese tipo me permitió reducir el tiempo de un resumen que abarcaba 1.400.000 registros en un 80%, sin necesidad de crear índices ni tablas temporales.
Estos temas (optimización de consulta) se pueden ver someramente en páginas dedicadas al tema:
http://www.devshed.com/c/a/MySQL/MyS...zation-part-1/ http://www.databasejournal.com/featu...le.php/1382791