WordPress: Die Datenbank bereinigen – Post Revisions, Auto Draft und jede Menge Müll

Wer seinen Blog unter WordPress eingerichtet hat, wird mit der Zeit wachsen und mehr und mehr Platz im Internet für sich beanspruchen.

Immer mehr Artikel erblicken das virtuelle Licht der Welt, immer mehr Kommentare werden hinterlassen und natürlich bläht sich gleichermaßen die eigene Datenbank auf.

Denn das kleine CMS speichert so ziemlich alles, ob nun Artikel, Kommentare oder auch optionale Bestandteile eines Plugins in einer Datenbank.

Zwar wirkt MySQL – besser gesagt die Applikation phpMyAdmin – anfangs sehr unübersichtlich, doch gibt es ein paar einfache Eingriffe, um die eigene Datenbank zu entschlacken und aufzuräumen, ohne dabei den eigenen Blog zu zerschießen.

WordPress: Die Datenbank unter WordPress

Wordpress und die DatenbankDie Oberfläche von phpMyAdmin finde ich selbst wenig benutzerfreundlich; vieles wirkt kompliziert und Durchblick hat man allen Anschein nach auch nicht.

Ich erinnere mich noch, wie ich damals meine ersten Schritte in einer Datenbank ging, da schrieb ich mit zwei Freunden ein Browsergame, was es übrigens immer noch gibt.

Das hat Spaß gemacht und war aufregend – gleichermaßen assoziiere ich allerdings Unsicherheit und dicke, komplizierte Fachbücher und stundenlange Forendiskussionen, um das Ganze irgendwie zu handhaben.

Also, ich bin froh, wenn ich die Datenbank wieder hinter mir lassen darf, denn hey, funktioniert doch alles.

Das phpMyAdmin-Dashboard

Oberfläche von phpMyAdmin

Nun ist es aber so, dass WordPress mit der Zeit enorm wächst und ein sehr großes Verzeichnis hinter unserem Rücken anlegt; jeden Artikel, den wir zwischenspeichern, alle nachträglichen Veränderungen und natürlich unzählige Kommentare werden in unserer Datenbank abgelegt. Ist ja auch wichtig, sonst wären sie passé.

Gleichzeitig heißt das aber auch, dass es einen Raum auf unserem Webspace gibt, der tagtäglich größer wird, dabei Platz einnimmt und das ist manchmal gar nicht notwendig.

Deshalb möchte ich in diesem Artikel ein paar Hinweise geben, was wir in der eigenen Datenbank alles erledigen können.

WordPress – Die Datenbank aufräumen

Die gesammelten Vorschläge sollten eigentlich nicht zu Kollateralschäden führen, dennoch empfehle ich vor allen Eingriffen ein Backup der WP-Datenbank mithilfe des Sicherungprogramms MySQLDumper.

Das lässt sich zwar auch durch ein paar Klicks selbst realisieren, aber ich habe sehr gute Erfahrungen mit dieser Methode gesammelt und halte sie für idiotensicher.

So, werfen wir nun einen Blick auf die einzelnen Elemente, die wir kräftig ausmisten können.

Post Revisions und Auto Drafts

Wenn wir einen Artikel unter Worpress verfassen, machen wir üblicherweise unzählige Zwischenspeicherungen und jedes Mal, wenn wir einen alten Artikel editieren, wird die alte Version in unserer Datenbank abgelegt- Voila: Post Revisions sind da!

Das geschieht übrigens auch automatisch, die entsprechenden Einstellungen vorausgesetzt. Aber gleichzeitig bedeutet es, dass wir jedes Mal ein Abbild eines erstellten Beitrags in unsere Datenbank werfen und diese folgerichtig vergrößern.

Vorab können wir festlegen, dass fortan gar keine Post Revisions mehr angelegt werden, dafür werfen wir lediglich folgenden Codeschnipsel in unsere wp-config.php

define(‘WP_POST_REVISIONS’, false);

Allerdings können wir anstatt false auch eine beliebige Zahl festlegen, um doch die ein oder andere Zwischenspeicherung pro Beitrag zu behalten. Ich habe mich allerdings gänzlich dagegen entschieden.

Das hat natürlich recht wenig Auswirkungen auf die bisher angelegten Elemente in unserer Datenbank. Aber auch diese können wir manuell löschen. Dafür rufen wir phpMyAdmin auf und suchen in der Tabelle alle Elemente, die mit dem Kürzel revisions (ganz rechts) gekennzeichnet sind und entfernen sie.

Die Datenbank aufräumen!

Allerdings müssen wir das gar nicht so umständlich machen und können mit einem Schlag alle Einträge aus der Datenbank werfen, auf die diese Erweiterung zutrifft.

Dafür können wir auf einen Befehl zurückgreifen, den wir unter SQL eintragen und natürlich ausführen.

DELETE FROM wp_posts WHERE post_type = ‘revision’;

Nun sollten alle angelegten Zwischenspeicherungen aus unserer Datenbank entfernt sein.

Hinweis: Das gilt übrigens auch für Auto Drafts – das sind Zwischenspeicherungen, die entstehen, wenn wir das erste Mal einen Artikel nachträglich editieren. Diese Erweiterung können wir auch gleich noch mitnehmen.

Welchen Weg wir gegangen sind, ist hierbei egal, denn das Ergebnis ist gleich. Am Ende dieses Artikel möchte ich aber noch ein Plugin vorstellen, das uns das Gröbste abnimmt.

Falls sich der ein oder andere das direkte Arbeiten in den Datenbanken nicht zutraut. Doch weiter im Text… 

Die einzelnen Tabellen optimieren

Dieser Eingriff ist vor allem dann sinnvoll, wenn sich im Laufe der Zeit jede Menge Mist angesammelt hat, wie etwa in den Kommentaren (Spam). Deshalb können wir manuell die angelegten Tabellen optimieren, was in diesem Fall auch wirklich nur einen Befehl benötigt.

Diesen Hinweis liest man übrigens auf vielen Seiten, doch wenige erklären, was man da eigentlich anstellt. Ich versuche das mal ein wenig aufzudröseln. Aber, wie schon häufig erwähnt, ich würde mich nicht als Experten in diesem Bereich outen.

Doch vorab noch der Befehl:

OPTIMIZE TABLE ‘wp_comments’

Klar, wir optimieren Tabellen. In diesem Fall und natürlich bei WordPress auch der wichtigste, sprechen wir ganz konkret die Tabelle an, die unsere Kommentare beinhaltet. Optimize Table kann man natürlich auch auf andere Tabellen anwenden, doch meistens ist das gar nicht notwendig.

Der Befehl kümmert sich lediglich darum, dass die Daten einer Tabelle neu sortiert werden. Man könnte es also fast mit dem Defragmentieren unserer Festplatten vergleichen. Das bietet sich dann an, wenn wir größere Veränderungen in einer Tabelle vorgenommen haben. Beispielsweise lange und variable Ketten gelöscht haben. Was im Kommentarbereich ja andauernd der Fall ist.

  • Wenn die Tabelle geteilte oder gelöschte Datensätze aufweist, werden diese repariert und gegebenenfalls zusammengeführt.
  • Unsortierte Indexseiten werden sortiert.

WP-Plugin: WP Optimize – Datenbank optimieren

Eingangs habe ich erwähnt, dass phpMyAdmin und MySQL für mich recht unübersichtlich und allenfalls ein notwendiges Übel sind.

Deshalb möchte ich an dieser Stelle noch ein kleines Plugin vorstellen, das die aufgezählten Einzelschritte gänzlich automatisiert und bei mir bisher fehlerfrei lief.

Allerdings empfehle ich auch vor der Nutzung dieser Erweiterung eine umfassende Sicherung der eigenen Datenbank. Der Hinweis soll auch gar nicht so abschreckend wirken, doch ist es so, dass in dieser Datenbank alle Artikel unseres Blogs abgelegt werden, wenn hierbei Fehler unterlaufen, ist halt alles weg.

Das Plugin WP Optimize lässt sich einfach über die Suche aus dem Dashboard in die eigene WordPress-Installation integrieren und zeigt uns nach der Aktivierung schon die ersten Baustellen im eigenen Blog auf.

Das Plugin WP Optimize

Hier können wir nun auswählen, welche Schritte unternommen und durchgeführt werden sollen und bestätigen die Auswahl mit einem Klick auf Process.

Wenn keine Fehler auftauchen haben wir innerhalb weniger Augenblicke den eigenen Blog und gleichermaßen die WordPress-Datenbank optimiert. Heureka!

Wenn Du allerdings noch Nachfragen bezüglich der einzelnen Befehle hast, selbst noch ein paar Hinweise geben möchtest oder mir diesen Artikel um die Ohren hauen magst, freue ich mich über Deinen Kommentar zum Optimieren der WordPress-Datenbank…