"Reparar por clasificación" utiliza la rutina de clasificación de archivos, que a su vez crea varios archivos temporales (generalmente) en su tmpdir.
Si su tmpdir no tiene suficiente espacio para ellos, volverá a "Reparar por keycache". Esto es extremadamente malo ya que es mucho más lento Y crea índices menos óptimos.
Hay algunas otras condiciones, pero no las he identificado.
Calcular el tamaño de tmpdir que necesita para filesort() no es trivial; los datos de formato que se almacenan en el búfer de clasificación de archivos no son los mismos que los archivos MYD, por lo general usan mucho más espacio.
Entonces, si su tmpdir apunta a un pequeño /tmp (o tmpfs), es posible que desee cambiarlo a un /var/tmp más grande, si existe.