Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie vermeide ich eine Reparatur mit Keycache?

"Reparieren durch Sortieren" verwendet die Routine filesort, die wiederum mehrere temporäre Dateien (normalerweise) in Ihrem tmpdir erstellt.

Wenn Ihr tmpdir nicht genug Platz für sie hat, wird es auf "Repair by keycache" zurückgesetzt. Das ist extrem schlecht, da es viel langsamer ist UND weniger optimale Indizes erstellt.

Es gibt einige andere Bedingungen, aber ich habe sie nicht identifiziert.

Die Größe von tmpdir herauszufinden, die Sie für filesort() benötigen, ist nicht trivial; Die Formatdaten, die im Filesort-Puffer gespeichert werden, sind nicht dasselbe wie bei MYD-Dateien, sie benötigen normalerweise viel mehr Speicherplatz.

Wenn Ihr tmpdir also auf ein kleines /tmp (oder tmpfs) zeigt, möchten Sie es vielleicht in ein größeres /var/tmp ändern - falls das existiert.