Die Speicherreservierung ist für die Ausführung von myisamchk sehr wichtig. myisamchk verwendet niemals mehr Speicher als über seine speicherbezogenen Variablen angegeben. Wenn Sie myisamchk für sehr große Tabellen verwenden, sollten Sie zunächst entscheiden, wie viel Speicher Sie verwenden wollen. Standardmäßig werden zur Durchführung von Reparaturen nur etwa 3 Mbyte benutzt. Durch Verwendung höherer Werte können Sie die Verarbeitungsgeschwindigkeit von myisamchk beschleunigen. Wenn Sie beispielsweise mehr als 32 Mbyte RAM haben, könnten Sie Optionen wie die folgenden (zusätzlich zu ggf. anderen angegebenen Optionen) verwenden:
shell>myisamchk --sort_buffer_size=16M --key_buffer_size=16M \
--read_buffer_size=1M --write_buffer_size=1M ...
Die Nutzung von --sort_buffer_size=16M
sollte
in den meisten Fällen ausreichend sein.
Beachten Sie, dass myisamchk
Temporärdateien in TMPDIR
benutzt. Wenn
TMPDIR
auf ein Speicherdateisystem
verweist, kann es leicht zu Problemen aufgrund mangelnden
Hauptspeichers kommen. In diesem Fall führen Sie
myisamchk mit der Option
--tmpdir=
aus,
um ein Verzeichnis auf einem Dateisystem anzugeben, auf dem
mehr Speicher zur Verfügung steht.
path
Bei der Reparatur benötigt myisamchk auch eine Menge Festplattenkapazität.
Die doppelte Größe der Datendatei (einmal für die
Originaldatei, einmal für die Kopie). Dieser
Festplattenspeicher wird nicht benötigt, wenn Sie eine
Reparatur mit der Option --quick
durchführen, denn in diesem Fall wird nur die Indexdatei
neu erstellt. Der Festplattenspeicher muss auf demselben
Dateisystem wie die ursprüngliche Datendatei vorhanden
sein! (Das liegt daran, dass die Kopie im gleichen
Verzeichnis erstellt wird wie die Originaldatei.)
Platz für die neue Indexdatei, die die alte Datei ersetzt. Die alte Indexdatei wird zu Beginn der Reparaturoperation gekürzt, d. h., Sie können diesen Speicherbedarf in der Regel ignorieren. Der Festplattenspeicher muss auf demselben Dateisystem wie die ursprüngliche Indexdatei vorhanden sein!
Wenn Sie --recover
oder
--sort-recover
(nicht aber
--safe-recover
) verwenden, benötigen Sie
Platz für einen Sortierpuffer. Die folgende Formel
ermöglicht die Berechnung der erforderlichen Kapazität:
(largest_key
+row_pointer_length
) ×number_of_rows
× 2
Sie können die Länge der Schlüssel und
row_pointer_length
mit
myisamchk -dv
tbl_name
überprüfen. Diese Festplattenkapazität wird im
Temporärverzeichnis reserviert, das mit
TMPDIR
oder
--tmpdir=
angegeben wird.
path
Sollte während der Reparatur ein Problem in Bezug auf den
Festplattenspeicher auftreten, dann können Sie
--safe-recover
statt
--recover
verwenden.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.