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

Überprüfen und optimieren Sie die MySQL-Datenbank automatisch mit Crontab/Cron

MySQL ist ein sehr beliebtes kostenloses und dennoch leistungsstarkes Datenbanksystem. Aber selbst in großen Datenbanken können die Tabellen aufgrund kontinuierlicher Aktualisierungen oder Lösch- und Einfügevorgänge für in der Datenbank gespeicherte Daten mit Overhead fragmentiert werden. Außerdem besteht auch die Möglichkeit, dass die Datenbanken beschädigt werden. Daher ist es eine wichtige Aufgabe, regelmäßig einen Gesundheitscheck für die Datenbank durchzuführen und den MySQL-Server zu optimieren.

Es ist etwas mühsam, wenn sich die Datenbankadministratoren beim Server anmelden oder phpMyAdmin starten müssen, um die Datenbanken einzeln oder Tabelle für Tabelle manuell zu optimieren. Manchmal vergisst der DB-Administrator einfach, die Arbeit zu erledigen, oder stellt die Häufigkeit der Optimierung auf kürzere Zeiten ein. Es wird empfohlen, dass alle Tabellen in MySQL-Datenbanken auf einem ausgelasteten Server mindestens einmal täglich überprüft werden.

Es ist möglich, die Optimierung des MySQL-Prozesses zu automatisieren, indem die Crontab-Funktion in Linux/Unix/CentOS/FreeBSD verwendet wird. Der Cron-Job zum Überprüfen und Optimieren von MySQL-Datenbanken kann mit dem mysqlcheck-Client-Dienstprogramm erstellt werden, das mit der MySQL-Installation geliefert wird. Der mysqlcheck-Client kann Tabellen in der MySQL-Datenbank prüfen, reparieren, optimieren und analysieren.

Um einen neuen Cron-Job zu erstellen, melden Sie sich als Root oder ein anderer Benutzer beim Server an und bearbeiten Sie dann die Crontab-Datei (in den meisten Betriebssystemen crontab -e öffnet die Crontab-Datei im Standard-Texteditor), um die folgende Textzeile hinzuzufügen. Klicken Sie für Benutzer, die cPanel verwenden, auf „Cron-Job“, wo Sie Crontab in täglichen, stündlichen und anderen Intervallen einrichten können. Erfahrene Webmaster können auch eine crontab-Datei in rc.hourly oder rc.daily oder einem anderen Cron-Verzeichnis einrichten. Beachten Sie, dass es nicht möglich ist, alle Datenbanken zu optimieren, wenn Sie sich als MySQL- oder normaler Benutzer ohne Zugriffsrechte auf alle Datenbanken anmelden, es sei denn, die Benutzer-ID und das Passwort für root sind wie im folgenden Beispiel angegeben.

0 1 * * * mysqlcheck -Aao --auto-repair -u root -p[password] > /dev/null

Die obige Anweisung hat eine ähnliche Syntax wie „mysqlcheck [options] –all-databases“, wobei der Parameter –all-databases die Standardaktion ist, wenn keine Datenbanken angegeben sind, und daher weggelassen werden kann. Der Befehl führt den mysqlcheck-Client aus, um täglich um 1 Uhr morgens automatisch alle Datenbanken zu analysieren und zu optimieren. Beachten Sie, dass zwischen -p und Ihrem Passwort für root kein Leerzeichen steht. Sie können die Laufzeit nach Ihren Wünschen ändern und auch die Optionen für den mysqlcheck-Befehl ändern. Wenn Sie nur bestimmte Datenbanken oder bestimmte Tabellen ohne die Datenbank überprüfen und optimieren möchten, verwenden Sie die folgende Syntax:

mysqlcheck [options] db_name [tables]
mysqlcheck [options] --databases DB1 [DB2 DB3...]

Möglicherweise möchten Sie den Schalter –auto-repair aus dem obigen Befehl entfernen, da ein Tabellenreparaturvorgang unter bestimmten Umständen zu Datenverlust führen kann. Der Vorgang kann unter anderem Dateisystemfehler verursachen. Für diejenigen, die den Zeichensatz und die Sortierung von MySQL-Datenbanken geändert haben, müssen Sie möglicherweise auch die Option –default-character-set verwenden. Weitere Informationen zu allen verfügbaren Schaltern und verfügbaren Optionen finden Sie hier.