Statt abzuwarten, bis Probleme auftreten, bietet es sich an,
Tabellen regelmäßig zu überprüfen. Eine Möglichkeit,
MyISAM
-Tabellen zu überprüfen und zu
reparieren, besteht in der Verwendung der Anweisungen
CHECK TABLE
und REPAIR
TABLE
. Siehe auch Abschnitt 13.5.2.3, „CHECK TABLE
“, und
Abschnitt 13.5.2.6, „REPAIR TABLE
“.
Eine weitere Methoden ist die Nutzung von
myisamchk. Bei Wartungsproblemen können
Sie myisamchk -s verwenden. Mit der Option
-s
(--silent
) läuft
myisamchk im stummen Modus, d. h.
Meldungen werden nur ausgegeben, wenn Fehler auftreten.
Auch die Aktivierung der automatisierten Überprüfung von
MyISAM
-Tabellen ist empfehlenswert. Wann
immer ein Computer beispielsweise im Verlauf eines Updates
einen Neustart durchführt, müssen Sie jede Tabelle, die
hiervon betroffen sein könnte, überprüfen, bevor Sie sie
weiter verwenden. (Man bezeichnet solche Tabellen auch als
„voraussichtlich abgestürzte Tabellen“.) Um
MyISAM
-Tabellen automatisch zu
überprüfen, starten Sie den Server mit der Option
--myisam-recover
. Siehe auch
Abschnitt 5.2.1, „Befehlsoptionen für mysqld“.
Doch auch im normalen Systembetrieb sollten Sie die Tabellen
regelmäßig überprüfen. Bei MySQL AB führen wir einmal
wöchentlich einen cron-Job zur
Überprüfung wichtiger Tabellen durch, wobei wir eine Zeile
ähnlich der folgenden in einer Datei
crontab
verwenden:
35 0 * * 0/path/to/myisamchk
--fast --silent/path/to/datadir
/*/*.MYI
Hierbei werden Informationen zu abgestürzten Tabellen ausgegeben, die wir untersuchen können, um ggf. erforderliche Reparaturen durchzuführen.
Da seit Jahren kein Fall unerwartet abgestürzter Tabellen aufgetreten ist (also Tabellen, die aus anderen Gründen als Problemen mit der Hardware beschädigt wurden), betrachten wir die wöchentliche Überprüfung als ausreichend.
Wir empfehlen, myisamchk -s anfangs in jeder Nacht für alle Tabellen auszuführen, die während der jeweils letzten 24 Stunden aktualisiert wurden, bis Sie MySQL so weit trauen, wie wir es tun.
Normalerweise erfordern MySQL-Tabellen recht wenig Pflege.
Wenn Sie MyISAM
-Tabellen mit Datensätzen
dynamischer Größe (also Tabellen mit
VARCHAR
-, BLOB
- oder
TEXT
-Spalten) oder Tabellen mit vielen
gelöschten Datensätzen haben, dann sollten Sie diese
Tabellen von Zeit zu Zeit defragmentieren, d. h. den
unbenutzten Speicher wieder zur Benutzung freigeben. Dies
können Sie tun, indem Sie die fraglichen Tabellen mit einer
OPTIMIZE TABLE
-Anweisung verarbeiten.
Alternativ können Sie, wenn Sie den
mysqld-Server eine Zeitlang anhalten
können, in das Datenverzeichnis wechseln und den folgenden
Befehl bei angehaltenem Server ausführen:
shell> myisamchk -r -s --sort-index --sort_buffer_size=16M */*.MYI
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.