Eso te lo puede responder el manual:
Cita: SQL_BIG_RESULT o SQL_SMALL_RESULT pueden usarse con GROUP BY o DISTINCT para decir al optimizador que el conjunto de resultados tiene muchas filas o es pequeño, respectivamente.
Para SQL_BIG_RESULT, MySQL usa directamente tablas temporales en disco si es necesario, y prefiere la clasificación para el uso de una tabla temporal con una clave en GROUP BY elementos.
Para SQL_SMALL_RESULT, MySQL usa tablas temporales rápidas para almacenar la tabla resultante en lugar de utilizar la clasificación.
Este hint no debería normalmente ser necesario
En tu contexto, estás haciendo mucho uso de memoria porque 2.000 registros devueltos no califican para llamarlos "grande". Es una tabla minuscula.
Probablemente ande bien incluso sin ese hint, y sólo ampliando el buffer de consultas.