Großreinemachen: So optimieren Sie Ihre WordPress-Datenbank

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.

Das Optimieren der WordPress Datenbank

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

Diagramm der WordPress Datenbank-Tabellen
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.

Datenbank in phpMyAdmin geöffnet
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.

Datenbank-Tabellen über phpMyAdmin optimieren

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.

Das WordPress Datenbank Repariere und Optimiere Tool

Die durch WordPress reparierten Datenbank-Tabellen
WordPress hat die Datenbank-Tabellen überprüft und für in Ordnung befunden.

Das WordPress Optimierungs-Tool hat die Datenbanken repariert und optimiert.
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 auskommentierte Zeile des WordPress Repair und Optimizaion Tools
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

WordPress Plugin: Optimize Database after Deleting Revisions

Nach der Installation findet man die Einstellungen des Plugins unter „Einstellungen => Optimize BD Options„. Folgende Einstellungen empfehle ich:

Die Einstellungen des Optimize Database after Deleting Revisions WordPress Plugins

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.

Das "Optimize Database" Tool

Nach Abschluss der Arbeiten erhält man einen detaillierten Bericht über die vorgenommenen Optimierungen.

Ein Klick auf die folgende Grafik öffnet den kompletten Screenshot.

Das Ergebnis der Datenbank-Optimierung

  • 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 WPDBSpringClean Plugin für WordPress

Das Plugin ist nach der Aktivierung in den Einstellungen zu finden. Nachdem Sie es aufgerufen haben, starten Sie als erstes eine Suche (Perform Search).

Suche starten

Nachdem die Suche beendet ist, können Sie die ungenutzten Tabellen durch das Plugin löschen lassen.

Ungenutzte Tabellen löschen

Zusätzlich können Sie alle noch verbliebenen Tabellen zuverlässig optimieren lassen. Suche starten, alle Tabellen anhaken und Optimize klicken. Fertig!

Datenbank-Tabellen mit dem WPDBSpringClean Plugin optimieren

  • 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

 

ist freier Journalist, WordPress-Entwickler und Spezialist für WordPress-Sicherheit. Er schreibt seit 2012 für Dr. Web. Auf seinem Blog TechBrain.de schreibt er über das Bloggen und veröffentlicht nützliche WordPress-Snippets.

Sortiert nach:   neueste | älteste | beste Bewertung
Torsten
Gast

Entrümpelte Datenbanken sind gut für den Speicherplatz, aber machen den Blog in den seltensten Fällen schneller …
Siehe Kommentare (+Links) hier: http://wpmeetup-potsdam.de/666/slides-wordpress-datenbank-optimieren#comments

Anna Blume
Gast

Vielen Dank, dieser besonders, aber auch viele andere WordPress-Artikel von Dir sind sehr interessant und hilfreich.

trackback

[…] Bei einem der selteneren Probleme mit einer WordPress-Seite bin ich vom freundlichen Support meines Providers auch darauf angesprochen worden, die Datenbank „aufzuräumen”. Bis dahin dachte ich, dass es da eigentlich nichts zu pflegen gibt. Nun ist bei Dr. Web ein schöner und ausführlicher Artikel erschienen, indem solche Arbeiten beschrieben werden – und auch Plugins, die einem einen Großteil dieser Arbeiten abnehmen können: Großreinemachen: So optimieren Sie Ihre WordPress-Datenbank. […]

trackback

[…] gelöscht und wieder neu aufgebaut. Quasi in letzter Minute stieß ich in einem Artikel von Dr. Web auf das Plugin WPDBSpringClean, das ungenutzte Tabellen aufspürt und löscht. Das hat es auch bei […]

Harry Milatz
Gast
Hi Andreas, weißt du etwas darüber ob es eine Alternative zu “WPDBSpringClean” gibt? Das Plugin ist ja schon ein paar Tage älter und Update ist schon lange(11.08.2013) her;) Es läuft zwar nach wie vor auch mit WP 4.1.1 aber ab wann es dann nicht mehr konform läuft und eventuell eine überflüssige Tabelle findet und auch korrekt anzeigt und dann vielleicht aber nicht nur diese Tabelle (korrekt) löscht, weiß man ja nicht. Ich finde gerade dieses Plugin neben “WP-Optimize” und “Delete Expired Transients” sehr hilfreich und eine Alternative wäre klasse. Im Moment lasse ich mir damit nur die Tabellen anzeigen und… Read more »
Dr. Michael Gellner
Gast

Danke für die Beschreibung aller drei Spielarten (mysql/WP-Built In/Plugin) – das hat mir jetzt viel Rumprobieren und Zusammensuchen erspart. … und geklappt hat’s!

Derk Starke
Gast

Hallo und guten Tag,
ein großes Lob an Dich, sehr anschaulich und gut beschrieben, habe genau nach der Beschreibung gehandelt und die WP Datenbank Tabelle mit Bordmitteln optimiert und das WPDBSpringClean genutzt, was meine Datenbank Größe um 1,8 MB schlanker gemacht hat.
Was sich nicht verändert hat ist meine Memory Usage, davor und danach ist es bei 80% geblieben. Wäre schön wenn da jemand einen Tipp für mich hätte.
LG vom Niederrhein
Derk

trackback

[…] Großreinemachen: So optimieren Sie Ihre WordPress Datenbank […]

trackback

[…] Mit dieser Plege wächst der Umfang der WordPress Datenbank ständig an und kann die Ladegeschwindigkeit Ihrer Webseite beeinflussen. Wenn Sie mehr über das Entfernen unnötiger Daten und über Steigerung der Effizienz Ihrer WordPress Datenbank und somit über den Einfluss auf die Ladegeschwindigkeit wissen möchten, dann können Sie sich darüber informieren bei Dr.Web. […]

Thomas
Gast
Hallo und danke für den Artikel. Was mir aufgefallen ist: Nach dem Löschen der alten Revisionen und das Optimieren der Datenbank via dem wordpress-eigenen Tool, behalten diese ihre alte Größe. Erst durch das Optimieren via phpmyadmin wird der Speicherplatz wieder frei gegeben. Zur Frage: Ich arbeite derzeit an einem WordPress für eine Galerie bzw. überarbeite die Seite komplett. Hier hatte sich in den letzten Jahren eine Menge Ballast angesammelt, insbesondere auch im Upload-Ordner. Die Leute luden einfach Bilder direkt aus der Digitalkamera hoch. Hier half nur ein externes Austauschen der Grafiken via ftp bzw. eine zuvorige Batch-Konvertierung mittels irfanview. Da… Read more »
trackback

[…] Mit dieser Plege der WordPress Datenbank wächst der Umfang des Inhalts ständig an und kann später die Ladegeschwindigkeit Ihrer Webseite beeinflussen. Wenn Sie im fortgeschrittenen Statdium mehr über das Entfernen unnötiger Daten und über Steigerung der Effizienz Ihrer WordPress Datenbank und somit über den Einfluss auf die Ladegeschwindigkeit wissen möchten, dann können Sie sich darüber informieren bei Dr.Web. […]

Daniel
Gast

Hallo zusammen!

Ich stehe aktuell kurz davor meine WordPress Installation neu aufzusetzen. Grund ist die scheinbar nicht korrekte Deinstallation einiger Plugins aus der Datenbank raus.

So habe ich nun im Backend User Rollen, die vorher nicht da waren. Auch in den Menü Einstellungen habe ich links einen Reiter namens „Categorys“ der einst nicht da war und vermutlich auch von irgendeinem Plugin stammt.

Habt ihr eine Idee wie ich solchen Datenmüll aus der Datenbank sicher entfernen kann?

Viele Grüße und vielen Dank!
Daniel

Lutz
Gast

Hallo und Nabend.
… und wenn ich meine Datenbank dann doch über phpMyAdmin entmüllen möchte? Da liegen bei mir nämlich unter der Tabelle „wp_login_access“ 338 MB (!) an Zeugs und Sachen. Ich schätze, dass vielleicht Protokolle aus dem Plugin „Limit Login Attempts“ die Datenbank so derart anschwellen lassen. Kann ich diese Daten mit dem Auswählen der Tabelle „wp_login_access“ und der Aktion „Leeren“ loswerden? Ohne alles zu zerstören? Ich muss die komplette Webseite nämlich per Duplicator clonen und durch diesen „Müll“ ist’s zu groß geworden. Biddö Hülfe !
Lutz

wpDiscuz

Mit der Nutzung unseres Angebots erklärst du dich damit einverstanden, dass wir Cookies verwenden. Weitere Informationen

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anzubieten und die Zugriffe auf unsere Website zu analysieren. Dadurch geben wir nicht personenbezogene Informationen zur Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter. Nähere Informationen findest du in unserer Datenschutzerklärung. Durch die Weiternutzung unserer Website (oder das ausdrückliche Klicken auf "Einverstanden") gehen wir davon aus, dass du mit der Verwendung von Cookies einverstanden bist.

Schließen