Datenbanken wachsen stetig an und wollen somit auch entschlackt werden. Da das ganze einigermaßen zeitraubend ist, kann man diesen Prozess aber auch für immer vereinfachen – mit einem einfachen PHP-Skript.
Aufgrund einiger auf meinem Server installierter Tools, wächst meine Datenbank auch an, wenn ich gar nicht mit meinem Server arbeite, somit bin ich stehts bemüht meine Datenbanken so klein und performant wie möglich zu halten.
Da ich jetzt aber auch nicht ständig über PHPMyAdmin die Daten entfernen will, habe ich mir gedacht, dass man das Problem auch via PHP lösen kann. Das hat mich dermaßen zufriedengestellt, dass ich das Skript jetzt auch publizieren möchte und ausdrücklich um Verbesserungen bitte:
<?php
//Diese Daten bitte durch die serverspezifische Konfiguration ersetzen
$mail = "ich@host.de";
$datenbankserver = "localhost";
$benutzer = "Datenbanknutzer";
$passwort = "P4ßsw0rt";
$datenbank = "Wordpress";
//Ab hier bitte nur mit Verstand arbeiten
$link = @mysql_connect($datenbankserver, $benutzer, $passwort);
@mysql_connect($datenbankserver, $benutzer, $passwort);
@mysql_select_db($datenbank);
$sql = @mysql_query('DELETE FROM wp_posts WHERE post_type = "revision"');
if (!$sql) {
die(mail($mail, 'Datenbankoptimierung Fehler', 'Die monatliche Datenbankoptmimierung war fehlerhaft in der ersten SQL-Abfrage. Der Server gab folgenden Fehler aus: mysql_error() | Du kannst du dies unter http://ser.ver/ nachvollziehen.', "From: Server <no-reply@ser.ver>"));
}
$sql2 = @mysql_query('OPTIMIZE TABLE wp_commentmeta, wp_comments, wp_links, wp_login_fails, wp_options, wp_postmeta, wp_posts, wp_terms, wp_term_relationships, wp_term_taxonomy, wp_usermeta, wp_users');
if (!$sql2) {
die(mail($mail, 'Datenbankoptimierung Fehler', 'Die monatliche Datenbankoptmimierung war fehlerhaft in der zweiten SQL-Abfrage. Der Server gab folgenden Fehler aus: mysql_error() | Du kannst du dies unter http://ser.ver/ nachvollziehen.', "From: Server <no-reply@ser.ver>"));
}
@mysql_close($link);
echo "Erfolg!";
mail($mail, 'Datenbankoptimierung erfolgreich', 'Die monatliche Datenbankoptmimierung war erfolgreich. Um jedoch ganz sicher zu gehen kannst du dies unter http://ser.ver nachvollziehen.', "From: Server <no-reply@ser.ver>");
?>Die ersten Zeilen sagen dem Skript, mit welchen Daten es sich zur Datenbank verbinden soll, danach folgen dann auch die Taten. Nun schaut das Skript, ob es nichtbenötigte Sicherungskopien von Artikeln findet und löscht diese gegebenenfalls. Tritt dabei ein Fehler auf, so wird eine Email mit dem MySQL-Fehlercode an eine angegebene Emailadresse versendet.
Danach startet die zweite Abfrage. Sie optimiert die Tabellen von WordPress, indem die Überhänge gelöscht werden, welche unnötigen Ballast darstellen. Sollte dies schieflaufen wird ebenfalls eine Email mit Fehlermeldung versendet.
Sind nun alle Aufgaben abgearbeitet wird vom Skript “Erfolg!” ausgegeben und eine positive Nachricht an die hinterlegte Adresse versendet.
Wer noch weniger Arbeit haben möchte, kann die Datei mit einem Cronjob (beispielsweise cronjob.de) regelmäßig aufrufen lassen.
$mail = ich@host.de;
Sie könnte auch interessieren:
- Aktualisiert: Datenbankoptimierungs-Snippet
- WordPress: Sichere und bequeme Backups
- Websitenbereiche absichern
Sobald neue Informationen zu diesem Beitrag vorliegen, wird er aktualisiert.




Schöne Sache, werde ich bei Gelegenheit mal über meine Datenbank jagen
Super!
.
Freut mich, wenn das Skript hilft! Ist ja eigentlich nichts spektakuläres, aber eben verdammt praktisch…