Dieses Blog ist beliebt – nicht zuletzt bei Spammern. Während ich diese Zeilen schreibe treffen etwa ein halbes Dutzend Spam-Kommentare pro Minute(!) ein. Dank Akismeth wandert dieser Wortmüll zwar direkt ins Spam-Verzeichnis, belastet aber immer noch unnötig meine Datenbank. Und obwohl es im WordPress-Backend die Möglichkeit gibt, Spam-Kommentare dauerhaft zu löschen (unter Kommentare > Spam > Spam leeren), ist die Datenbank-Tabelle wp_comments nach einer solchen Säuberungsaktion kein Bit kleiner. Warum ist das so – und was tut man dagegen?
Der Überhang – unbenutzter Speicherplatz in MySQL-Datenbanken
Lässt man sich in phpMyAdmin die Datenbankstruktur anzeigen, dann wird rasch klar, wo das Problem liegt: Den Löwenanteil des Speicherplatzes belegen nicht die wenigen verbliebenen Datensätze, sondern der Überhang (engl. Overhead) in der letzten Spalte. Dabei handelt es sich um nicht mehr benutzten Speicherplatz, der durch die Löschung der Spam-Kommentare frei geworden ist. Leider optimiert MySQL die Datenbankdateien nicht selbständig – mit phpMyAdmin lässt sich dies aber leicht manuell tun.
Zunächst klickt man auf die Zahl, welche die Grösse des Überhangs angibt. Dadurch gelangt man auf die Strukturübersicht der entsprechenden Tabelle. Unten an der Seite im Bereich Information wird der Speicherplatzverbrauch dieser Tabelle detailliert aufgeschlüsselt:
In unserem Beispiel belegen die eigentlichen Daten also nur gerade 4.4 MiB, während sagenhafte 364.6 MiB sinnlos den Server belasten. Aber nicht mehr lange: Ein Klick auf den Link “Optimiere Tabelle” genügt, und phpMyAdmin befreit die Datenbankdatei innert Sekunden von unbenutztem Speicher. Seien Sie übrigens nicht überrascht, wenn die Datenbanktabelle sogar noch kleiner geworden ist, als Sie erwarten würden – Ihre Daten sind trotzdem noch da (wie man anhand der Anzahl der Datensätze in der rechten Spalte unschwer erkennen kann).
Statt nun aber jede Tabelle mit Überhang einzeln zu optimieren gibt es auch eine bequeme Abkürzung: In der Strukturübersicht der gesamten Datenbank klickt man unten zuerst Tabellen mit Überhang auswählen und ruft dann den Befehl Optimiere Tabelle auf.
Plug-ins zur Wartung eines WordPress Blogs
Auch wenn es technisch nicht besonders anspruchsvoll ist: Es ist wahrscheinlich nicht jedermanns Sache, mit phpMyAdmin die Datenbank manuell aufzuräumen. Es gibt aber auch Plug-ins, welche solche Dienste anbieten, beispielsweise WP-Optimize oder WP Database Optimizer. Der Vorteil solcher Plug-ins besteht darin, dass man lediglich Zugriff auf das WordPress-Backend benötigt, um sie zu nutzen. Ausserdem kann die Datenbank-Optimierung so auch automatisiert werden.