Die in diesem Abschnitt beschriebenen Optionen können für alle Arten von Wartungsvorgängen verwendet werden, die von myisamchk an Tabellen vorgenommen werden. Die nachfolgenden Abschnitte beschreiben dann Optionen, die spezifisch für bestimmte Operationen wie die Überprüfung oder Reparatur von Tabellen sind.
--help
, -?
Zeigt eine Hilfemeldung an und wird dann beendet.
--debug=
debug_options
,
-# debug_options
Schreibt ein Debuglog. Der String
debug_options
heißt häufig
'd:t:o,
.
file_name
'
--silent
, -s
Stummer Modus. Eine Ausgabe erfolgt nur, wenn ein Fehler
auftritt. Sie können -s
zweimal angeben
(-ss
), um myisamchk
vollständig zum Verstummen zu bringen.
--verbose
, -v
Ausführlicher Modus. Es werden zusätzliche Angaben zu
den Aktivitäten des Programms ausgegeben. Die Option kann
gemeinsam mit -d
und -e
eingesetzt werden. Verwenden Sie -v
mehrfach (-vv
, -vvv
), um
noch mehr Angaben auszugeben.
--version
, -V
Zeigt die Versionsinformation an und wird dann beendet.
--wait
, -w
Statt mit einem Fehler beendet zu werden, wenn die Tabelle gesperrt ist, wartet das Programm, bis die Sperre aufgehoben ist, und fährt dann mit der Ausführung fort. Beachten Sie, dass, wenn Sie mysqld mit deaktivierter externer Sperrung ausführen, die Tabelle nur durch einen weiteren myisamchk-Befehl gesperrt werden kann.
Sie können mit der Syntax
--
auch die folgenden Variablen einstellen:
var_name
=value
Variable | Standardwert |
decode_bits |
9 |
ft_max_word_len |
versionsspezifisch |
ft_min_word_len |
4 |
ft_stopword_file |
integrierte Liste |
key_buffer_size |
523264 |
myisam_block_size |
1024 |
read_buffer_size |
262136 |
sort_buffer_size |
2097144 |
sort_key_blocks |
16 |
stats_method |
nulls_unequal |
write_buffer_size |
262136 |
Welche myisamchk-Variablen unterstützt werden und welche Standardwerte sie haben, ermitteln Sie mit myisamchk --help:
sort_buffer_size
wird benutzt, wenn die
Schlüssel durch Sortierung repariert werden, was bei
Verwendung von --recover
der Normalfall ist.
key_buffer_size
verwenden Sie bei der
Überprüfung der Tabelle mit --extend-check
oder aber dann, wenn die Schlüssel durch Einfügen von
Schlüsseldatensätzen in die Tabelle (ähnlich normalen
Einfügeoperationen) repariert werden. Die Reparatur über den
Schlüsselpuffer wird in den folgenden Fällen verwendet:
Sie verwenden --safe-recover
.
Die zur Sortierung der Schlüssel erforderlichen
Temporärdateien wären mehr als doppelt so groß wie bei
der direkten Erstellung der Schlüsseldatei. Dies passiert
häufig, wenn Sie große Schlüsselwerte für
CHAR
-, VARCHAR
- oder
TEXT
-Spalten haben, weil im Zuge des
Sortiervorgangs die vollständigen Schlüsselwerte
gespeichert werden müssen. Wenn Sie viel Speicher für
temporäre Daten haben und die Reparatur durch Sortierung
mithilfe von myisamchk erzwingen
wollen, verwenden Sie die Option
--sort-recover
.
Die Reparatur über den Schlüsselpuffer benötigt wesentlich weniger Festplattenspeicher als die Sortierung, ist allerdings auch langsamer.
Wenn Sie eine schnellere Reparatur wünschen, setzen Sie die
Variablen key_buffer_size
und
sort_buffer_size
auf einen Wert von ca. 25
Prozent Ihres verfügbaren Speichers. Sie können beide
Variablen auf hohe Werte setzen, da immer nur eine von ihnen
gleichzeitig verwendet wird.
myisam_block_size
ist die Größe, die für
Indexblöcke verwendet wird.
stats_method
beeinflusst, wie
NULL
-Werte bei der Erfassung von
Indexstatistiken behandelt werden, wenn die Option
--analyze
angegeben wurde. Sie agiert wie die
Systemvariable myisam_stats_method
. Weitere
Informationen entnehmen Sie der Beschreibung von
myisam_stats_method
in
Abschnitt 5.2.2, „Server-Systemvariablen“, und
Abschnitt 7.4.7, „Sammlung von MyISAM
-Indexstatistiken“.
ft_min_word_len
und
ft_max_word_len
geben die minimale bzw.
maximale Wortlänge für FULLTEXT
-Indizes
an. ft_stopword_file
gibt die Datei mit den
Stoppwörtern an. Diese Optionen müssen unter den nachfolgend
beschriebenen Umständen eingestellt werden.
Wenn Sie mit myisamchk eine Operation
durchführen, die Tabellenindizes verändert (dies können
etwa Reparatur- oder Analyseoperationen sein), dann werden die
FULLTEXT
-Indizes unter Verwendung der
standardmäßigen Volltextparameterwerte für die minimale und
maximale Wortlänge und die Stoppwortdatei verwendet, sofern
Sie nichts anderes angeben. Dies kann dazu führen, dass
Abfragen fehlschlagen.
Das Problem tritt auf, weil diese Parameter nur dem Server
bekannt sind. Sie werden nicht in den
MyISAM
-Indexdateien gespeichert. Um das
Problem zu umgehen, wenn Sie die minimale oder maximale
Wortlänge oder die Stoppwortdatei am Server geändert haben,
geben Sie dieselben Werte ft_min_word_len
,
ft_max_word_len
und
ft_stopword_file
für
myisamchk an, die Sie für
mysqld verwendet haben. Haben Sie also
beispielsweise die Mindestwortlänge auf 3 gesetzt, dann
können Sie eine Tabelle mit myisamchk wie
folgt reparieren:
shell> myisamchk --recover --ft_min_word_len=3 tbl_name
.MYI
Wenn Sie gewährleisten wollen, dass
myisamchk und der Server dieselben Werte
für Volltextparameter verwenden, können Sie sie jeweils in
die Abschnitte [mysqld]
und
[myisamchk]
einer Optionsdatei eintragen:
[mysqld] ft_min_word_len=3 [myisamchk] ft_min_word_len=3
Eine Alternative zur Verwendung von
myisamchk besteht in der Nutzung von
REPAIR TABLE
, ANALYZE
TABLE
, OPTIMIZE TABLE
oder
ALTER TABLE
. Diese Anweisungen werden vom
Server ausgeführt, der die korrekten Werte der
Volltextparameter kennt.
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.