Eine MySQL-Datenbank verwaltet den kompletten Inhalt einer WordPress-Website. Blog-Beiträge, Seiten, Kommentare und den Inhalt von Custom Post Types. Zusätzlich werden noch die Einstellungen der Webseite gespeichert, ebenso wie jene von Themes und Plugins. Wenn Sie Ihre Website regelmäßig aktualisieren und pflegen, neue Beiträge schreiben und auf diese Beiträge Kommentare bekommen, dann schwillt die Datenbank immer mehr an. Letztendlich kann eine umfangreiche und nicht optimierte Datenbank erheblichen Einfluss auf die Ladegeschwindigkeit Ihrer Webseite haben. Jedoch können Sie durch das Entfernen unnötiger Daten die Effizienz Ihrer Datenbank steigern und somit Einfluss auf die Ladegeschwindigkeit nehmen. Lassen Sie uns gemeinsam schauen, wie dieses Ziel erreicht werden kann.
Der Aufbau der WordPress-Datenbank
Wenn man mit WordPress als Content Management System arbeitet, kann es nicht schaden, etwas mehr über die Datenbank und die einzelnen Tabellen zu erfahren. So können Sie bei der Optimierung der Datenbanktabellen selbst Hand anlegen und müssen sich nicht auf obskure Plugins verlassen, die vielleicht mehr schaden als helfen.
WordPress bringt zur Zeit (wenn ich mich nicht verzählt habe) 11 eigene Tabellen mit, die während der Installation angelegt werden. Sehr schnell kommen etliche Tabellen hinzu, die von Plugins und Themes angelegt werden, so dass der Umfang der Datenbank tendenziell und dauerhaft wächst.
Jede WordPress-Tabelle hat eine spezifische Funktion. Ich stelle hier jede Core-Tabelle einmal kurz vor:
- wp_commentmeta – Beherbergt die Meta-Informationen über die Kommentare
- wp_comments – Hier werden die Kommentare gespeichert
- wp_links – Speichert die Blogroll-Links (die Funktionalität ist veraltet, kann jedoch über den Link Manager wieder hinzugefügt werden)
- wp_options – Speichert die Optionen, die in der Admin-Oberfläche getätigt worden sind
- wp_postmeta – Speichert die Meta-Informationen der Beiträge
- wp_posts – Hier werden die Beiträge, Seiten und Custom Post Types gespeichert.
- wp_terms – Speichert Kategorien, Tags und Links
- wp_term_relationships – Speichert die Zusammenhänge zwischen Beiträgen und Kategorien inklusive Tags und die Zusammenhänge zwischen Links und Linkkategorien.
- wp_term_taxonomy – Speichert die Beschreibung einer Taxonomie (Kategorie, Link oder Tag), die in der Tabelle wp_terms verwendet werden.
- wp_usermeta – Der Speicherort der User-Metainformationen
- wp_users – Speichert Ihre User (nicht Ihre Besucher)
Der WordPress Codex bietet einen wunderbaren Artikel über die WordPress Datenbank und genaue Beschreibungen der einzelnen Tabellen.
Infografik: Ein Überblick der Tabellen, leider noch auf Stand WP 3.8
WordPress Datenbank-Tabellen
WordPress Datenbank-Tabellen optimieren mit phpMyAdmin
Die Datenbank-Tabellen von WordPress lassen sich mit verschiedenen Methoden optimieren. Über die Datenbank-Verwaltungssoftware phpMyAdmin, die auf so ziemlich jedem Server und jedem Webhostingpaket installiert sein sollte und über Plugins. Beschäftigen wir uns jedoch erst einmal mit der phpMyAdmin-Lösung. Loggen Sie sich in phpMyAdmin ein und wählen Sie die korrekte Datenbank aus, falls Sie mehrere Datenbanken angelegt haben sollten.
Eine Testdatenbank mit zusätzlichen Tabellen durch Plugins angelegt.
Der einfachste Weg, die WordPress Datenbank-Tabellen zu optimieren, ist einen Haken bei “Alle auswählen” zu setzen und aus dem Dropdown-Menü rechts daneben “Optimiere Tabelle” zu wählen. Lassen Sie hierbei bitte Vorsicht walten, denn wenn Sie im Dropdown-Menü verrutschen, können Sie durchaus auch Ihre Tabellen löschen oder leeren.
Sicherlich arbeiten die MySQL und Serverspezialisten lieber mit SQL Befehlen. In diesem Beitrag wollen wir es aber jedem ambitionierten Seitenbetreiber ermöglichen, seine Datenbanken optimieren zu können.
WordPress Datenbank-Tabellen mit Bordmitteln optimieren
Auch WordPress selbst bietet ein Tool zum Optimieren und Reparieren von Datenbank-Tabellen, es muss nur aktiviert werden.
Kopieren Sie die folgende Zeile Code in Ihre wp-config.php Datei:
1 | define( 'WP_ALLOW_REPAIR', true ); |
Um das Optimierungs-Tool nun nutzen zu können, müssen Sie nicht eingeloggt sein. Geben Sie folgendes in die Adresszeile Ihres Browsers ein und rufen das Tool auf:
1 | http://www.ihre-webseite.de/wp-admin/maint/repair.php |
Im Anschluss sehen Sie das WordPress Database Repair und Optimize Tool vor sich.
WordPress hat die Datenbank-Tabellen überprüft und für in Ordnung befunden.
Das WordPress Optimierungs-Tool hat die Datenbanken repariert und optimiert.
Bitte beachten: Da dieses Script auch außerhalb von WordPress zugänglich ist, bitte nach der Benutzung dieses Tools die Zeile WP_ALLOW_REPAIR in der wp-config.php auskommentieren oder löschen. Sie können sich vorstellen, dass die ansonsten fortbestehende öffentliche Zugänglichkeit des Scripts ein erhebliches Sicherheitsrisiko darstellt.
Die Zeile WP_ALLOW_REPAIR wurde wieder auskommentiert.
So vermeiden Sie eine zugemüllte Datenbank
WordPress speichert wirklich alles in der Datenbank und sorgt dafür, dass die Datenbank mit der Zeit riesig groß wird. Das können Sie vermeiden, indem Sie Ihre wp-config.php etwas tunen und auf einige Dinge achten.
Die Post-Revisionen
Die WordPress-Revisionen der Beiträge sind ein ganz heißes Thema. Alle 60 Sekunden speichert WordPress den Beitrag ab, den Sie gerade schreiben. Klar ist das auch sehr gut, denn geht mal etwas schief, können Sie zur vorherigen Version Ihres Beitrags wechseln. Da aber keine bestimmte Anzahl von erlaubten Revisionen festgelegt ist, würde WordPress bis ins Unendliche speichern – so lange eben, wie der Beitrag noch in Arbeit ist. Das sollte man schon etwas begrenzen. Öffnen Sie wieder Ihre wp-config.php und kopieren Sie den folgenden Code-Schnipsel hinein:
1 | define( 'WP_POST_REVISIONS', 2 ); |
Das erlaubt nur noch 2 Revisionen, was in jedem Fall ausreichend sein sollte. Allerdings kann man die Post Revisions auch komplett abschalten:
1 | define( 'WP_POST_REVISIONS', false ); |
Eine Komplettabschaltung kann ich Ihnen jedoch keinesfalls empfehlen. Durchaus sinnvoll wäre aber das Löschen der Post-Revisionen nach dem Veröffentlichen eines Artikels. Für diese Aufgabenstellung gibt es ein hervorragendes Plugin, nämlich das folgende.
Plugin: Optimize Database after Deleting Revisions
Nach der Installation findet man die Einstellungen des Plugins unter “Einstellungen => Optimize BD Options“. Folgende Einstellungen empfehle ich:
Hat man die Einstellungen einmal so gesetzt, erfolgt die Optimierung der Post Revisionen, das Löschen der Spam-Kommentare, der bereits gelöschten Beiträge und der ungenutzten Tags automatisch täglich um 01:00 Uhr nachts. Möchte man händisch löschen, findet man das Tool unter “Werkzeuge => Optimize Database” und kann dort einen manuellen Reinigungslauf anstoßen.
Nach Abschluss der Arbeiten erhält man einen detaillierten Bericht über die vorgenommenen Optimierungen.
Ein Klick auf die folgende Grafik öffnet den kompletten Screenshot.
- Entwickler: CAGE Web Design | Rolf van Gelder
- Wird ständig weiter entwickelt: Ja
- Letzte Version vom: 23.10.2014
- Kosten: kostenfrei über WordPress.org
- Lizenz: GNU GENERAL PUBLIC LICENSE
- Wechselwirkungen mit anderen Plugins: nicht bekannt
- Entwickler-Homepage: CAGE Web Design
Tabellen von nicht mehr genutzten Plugins und Themes befreien
Wer kennt das nicht: ab und an werden mal neue Plugins oder Themes ausprobiert. Mit jedem installierten Plugin oder Theme wächst dabei die Datenbank, weil die Einträge der Plugins und Themes nicht bei deren Deinstallation wieder gelöscht werden, sondern erhalten bleiben. Im Sinne einer akzeptablen Ladegeschwindigkeit Ihrer Website sollten Sie solche Einträge hin und wieder aus der Datenbank löschen. Um ungenutzte Tabellen aus der Datenbank zu zu entfernen, kann ich dieses Plugin wärmstens empfehlen:
WPDBSpringClean
Das Plugin ist nach der Aktivierung in den Einstellungen zu finden. Nachdem Sie es aufgerufen haben, starten Sie als erstes eine Suche (Perform Search).
Nachdem die Suche beendet ist, können Sie die ungenutzten Tabellen durch das Plugin löschen lassen.
Zusätzlich können Sie alle noch verbliebenen Tabellen zuverlässig optimieren lassen. Suche starten, alle Tabellen anhaken und Optimize klicken. Fertig!
- Entwickler: wpsolutions
- Wird ständig weiter entwickelt: eher unregelmäßig
- Letzte Version vom: 11.08.2013
- Mit WordPress 4.0 kompatibel: Ja, vollständig
- Kosten: kostenfrei über WordPress.org
- Lizenz: GNU GENERAL PUBLIC LICENSE
- Wechselwirkungen mit anderen Plugins: nicht bekannt
- Entwickler-Homepage: WPDB Spring Clean
Fazit
Mit ein wenig Arbeit lässt sich die WordPress-Datenbank schlank erhalten, so dass die Website so schnell wie möglich an den Leser ausgeliefert werden kann. Unnötigem Ballast wird kurzerhand der Garaus gemacht und die lieb gewonnene WordPress-Präsenz läuft wieder rund. Für mich persönlich ist das WPBDSpringClean-Plugin unverzichtbar geworden. Es läuft auf allen meinen Websites. Wie gehen Sie mit schweren Datenbanken um? Was sind Ihre Optimierungsstrategien?
Links zum Beitrag
- WordPress Plugin Link Manager von WordPress.org
- Wikipedia Artikel zu Meta-Informationen
- WordPress Codex: Datenbank Beschreibung(EN)
- phpMyAdmin – Homepage
- WordPress Plugin: Optimize Database after Deleting Revisions von WordPress.org
- Homepage Optimize Database after Deleting Revisions
- WordPress Plugin: WPDBSpringClean von WordPress.org
- Homepage WPDBSpringClean