"Ripara per ordinamento" utilizza la routine filesort, che a sua volta crea diversi file temporanei (di solito) nella tua tmpdir.
Se il tuo tmpdir non ha abbastanza spazio per loro, tornerà a "Ripara con keycache". Questo è estremamente negativo in quanto è molto più lento E crea indici meno ottimali.
Ci sono altre condizioni ma non le ho identificate.
Calcolare la dimensione di tmpdir necessaria per filesort() non è banale; il formato dei dati sono archiviati nel buffer di filesort non è lo stesso dei file MYD, in genere utilizza molto più spazio.
Quindi, se il tuo tmpdir punta a un piccolo /tmp (o tmpfs), potresti voler cambiarlo in un /var/tmp più grande, se esiste.