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.
