El INNER JOIN
parece inútil Solo se une contra sí mismo y esa técnica no se usa en el resto de la consulta.user
user_table_alias ON user_table_alias.id
=u
.id
No hay índice en emailVerify
. Lo cual se indica en la primera fila de EXPLAIN. ('usando where' significa que no se usa ningún índice)
Esta consulta no se adapta bien al tamaño de la tabla, porque se debe mirar la tabla completa antes de delimitar qué son los "usuarios recientes". Así que probablemente algún búfer interno usado por myisam esté desbordado ahora. Eso es lo que significa 'usar temporal'. Usar filesort significa que el orden por es tan grande que usa un archivo temporal, lo cual es malo para el rendimiento.