Die WordPress-Datenbank. Unendliche Weiten. Wir schreiben das Jahr 2013. Dies sind die Abenteuer des WP Meetup Potsdam vom 19. Februar 2013, das mit seiner 5 Mann starken Besatzung einen halben Abend lang unterwegs ist, Plugins und andere Methoden zu erforschen, um Ordnung im Datenwust zu halten.
Datenschrott
Mit der Zeit kann sich einiges an Datenschrott in den Tabellen einer WordPress-Datenbank ansammeln, als da wäre:
- veraltete Revisionen (zwischengespeicherte Versionen von Beiträgen),
- zusätzliche Tabellen oder Tabelleneinträge von Plugins, die beim Löschen nicht automatisch entfernt wurden,
- ein voller Papierkorb.
Warum muss das raus? Logisch: Datenschrott macht die Datenbank unnötig groß und die zugehörige Site unnötig langsam.
http://twitter.com/glueckpress/status/303933209517891584
Datenbank säubern
Mögliche Maßnahmen zum Säubern der Datenbank lassen sich grob in zwei Kategorien gliedern:
- nachträgliches Optimieren und Aufräumen der SQL-Tabellen (dafür gibt es Tools),
- prophylaktische Maßnahmen (dafür gibt es z.B. Konstanten).
Optimieren und Aufräumen der SQL-Tabellen
Eine SQL-Tabelle ist ja eigentlich nichts weiter als eine Datei mit viel, viel Text drin. Damit man das Ganze auch wirklich in Tabellenform vor sich sehen und bequem editieren kann, gibt es serverseitige Software wie das Quasi-Standard-Tool phpMyAdmin, das bei fast jedem WordPress-tauglichen Webhosting-Paket zum Lieferumfang gehören sollte.
Dennoch kann es von Vorteil oder einfach bequemer sein, sich die Datenbank ins Backend zu holen. Und dafür gibt es Adminer, ein bewährtes Plugin vom Frank Bültge und Inpsyde. Mit Adminer (schönes Wortspiel übrigens: der englische „miner“ ist ja der deutsche „Bergmann“ – also einer der tief buddelt) lassen sich so ziemlich alle relevanten SQL-Operationen an der Datenbank ausführen, ohne das man dafür seine WordPress-Website verlassen müsste.
Allerdings sollte man wissen, was man tut. Und wer weiß, was er/sie tut, zieht sich vor dem Bearbeiten der Datenbank immer ein Backup. Immer. Absolut IM-MER!
Automatische Optimierung
Wenn man sowieso ein Plugin für das Backup braucht, kann man auch gleich BackWPup von Daniel Hüsken installieren und hat zwei… ich mag dieses Sprichwort mit den armen Fliegen nicht. Sagen wir einfach, man bekommt zwei ins eins: das Backup-Tool und die automatisierte Optimierung der Datenbank-Tabellen.
Mit BackWPup lassen sich separate Jobs anlegen und zeitgesteuert ausführen. Jede Nacht um 3:00 Uhr die Datenbank optimieren? Bitte sehr. Um 3:05 Uhr ein Backup der Datenbank in Dropbox speichern? Bitte sehr. Die Dateien der Installation auf dem Server sichern? Du hast es kapiert.
Kostanten zur Rettung
Sind die Tabellen gesäubert und optimiert, möchte man diesen geordneten Zustand vielleicht einigermaßen erhalten. Zu diesem Zweck gibt es zumindest zwei interessante Konstanten für die wp-config.php:
define('EMPTY_TRASH_DAYS', 10);
- Legt eine automatische Leerung des Papierkorbs nach n Tagen fest. Natürlich funktioniert auch eine Null als Wert, um den Papierkorb ganz zu eliminieren.
define('WP_POST_REVISIONS', false);
- Deaktiviert die automatische Zwischenspeicherung von Beiträgen. (Die automatische, nicht die manuelle Speicherung von Beiträgen als Entwurf!)
Wie immer in der wp-config.php, gehören die beiden Zeilen irgendwo vor die Zeile if ( !defined('ABSPATH') )
.
Disclaimer: Im Einzelfall sollte man sich gut überlegen, ob man auf Papierkorb und Revisionen komplett verzichten möchte! Wie bei allen sicherheitsbezogenen Features zeigt sich ihr Wert immer erst, wenn man sie mal wirklich braucht. Und wenn man sie dann nicht hat… schade.
Over und Ende
Kompetent wie immer hat Chris uns durch die Tabellen-Haufen und Daten-Galaxien geführt – vielen Dank! Schon während unserer Reise wurden wichtige Informationen in den Äther gefunkt und dankbar aufgenommen. Die Slides gibt es im Nachbarbeitrag.
@glueckpress Mehr! *jauchz*
— Martina Rüdiger (@digilotta) February 19, 2013
Hast du selbst Erfahrungen mit der Optimierung der WordPress-Datenbank? Wir freuen uns über Kommentare und weitere Tipps!
Toller Artikel, danke Dir. Genau das was ich gesucht habe.