Mysql
 sql >> Database >  >> RDS >> Mysql

Come evitare la riparazione con Keycache?

"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.