Hola,
Desde luego parecen mucho 42 segundos... ahora que, puede que tenga algo que ver con el caché (siempre el caché) en que pueda guardar MySQL los resultados de esa consulta, por ejemplo y, acaso, particularmente, por ser "tan pesada".
Eso explicaría porqué sucesivas ejecuciones de la consulta son más rápidas. ¿No puedes copiar por aquí la consulta SQL tal y como la llevas a cabo? A lo mejor a partir de ahí es posible que alguien pueda echarte una mano.
