Datenbank bereinigen und WordPress beschleunigen

Geschrieben von am 24. Mai 2012 in Tipps & Tricks - 7 Kommentare
Datenbank bereinigen

Mit beinahe jedem WordPress-Plugin werden Informationen in der Datenbank abgelegt. Das ist ein Problem, denn je größer und aufgeblähter die Datenbank, umso langsamer ist am Ende die eigene Website. Doch mit der Deinstallation unbenötigter Plugins ist es allein nicht getan, bleiben die Überreste des Plugins als Leichen doch immer in der Datenbank zurück. Und einen Großteil aller Plugins halte ich grundsätzlich eh für überflüssig, die sollte man gar nicht erst installieren.

Wie man die Datenbank von unnötigem Balast befreit, das möchte ich hier einmal näher vorstellen. Zunächst jedoch zwei Beispiel, wie die Datenbank von Plugins mit Informationen gefüllt wird.

Negativ-Beispiel: Socialize

Socialize ist ein Plugin, mit dem sich mit wenigen Klicks Sharing-/Social-Buttons einem WordPress-Blog und jedem einzelnen Beitrag zuordnen lassen. Das Plugin ist für diejenigen gut geeignet, die sich vor dem manuellen Einbau dieser Buttons scheuen und sich den Aufwand nicht machen wollen. Doch das Plugin hat ein großes Manko: Für jeden einzelnen Beitrag werden in der Datenbank Informationen darüber abgelegt, wie der Hinweistext lautet und welche Buttons eingefügt werden sollen; Und das, obwohl die meisten Plugin-Nutzer eine Einstellung für alle Beiträge nutzen dürften. Für jeden Beitrag werden also zwei Extra-Zeilen mit eigentlich nicht notwendigen Informationen in der Datenbank abgelegt. Wie viel Ballast das bei beispielsweise 500 Beiträgen erzeugt, wird sich jeder leicht ausrechnen können.

Socialize Datenbankballast

Socialize Datenbankballast

Positiv-Beispiel: wpSEO

Intelligenter gelöst wird das Ablegen von Informationen in der Datenbank etwa von wpSEO, dem SEO-Plugin von Sergej Müller.

Zum Einen macht das Ablegen von Informationen zu jedem einzelnen Beitrag hier viel mehr Sinn: Jeder einzelne Beitrag muss hinsichtlich der ihm eigenen Keywords für die Suchmaschine optimiert werden. Da ist es eben notwendig, dass auch jeder einzelne Beitrag andere Informationen erhält.

Zum anderen geht das Plugin jedoch intelligent vor: Es legt nur dann Extra-Informationen in der Datenbank ab, wenn sich der Nutzer zur Anpassung der Standard-Werte entscheidet. Nur bei Abweichungen von den einmal eingestellten und so abgespeicherten Standard-Werten füllt das Plugin die Datenbank mit diesen Informationen. Wer sich also entscheidet bei einem neuen Artikel einfach bei den Standard-Werte zu bleiben, der muss auch keine aufgeblähte Datenbank fürchten.

Datenbank-Nutzung bei wpSEO

Datenbank-Nutzung bei wpSEO

Ressourcenfresser identifizieren

Um diejenigen Plugins zu finden, die die Datenbank zumüllen, reicht meist ein Blick in die Datenbank-Struktur und hier vor allem in die Tabellte wp_postmeta! Sich hier durch die ersten 50-60 Zeilen zu arbeiten, zeigt in der Regel schon diejenigen Plugins auf, die immer wieder die gleichen Informationen in der Datenbank ablegen. Sind die Plugins dann noch einigermaßen klug entwickelt, so ist auch der Name des Plugins als “meta_key” gespeichert.

Auch Frameworks “helfen” mit

Doch auch die von mir so verhassten und in meinen Augen vollkommen überflüssigen Frameworks tragen ihren Teil bei: Zwar ermöglichen sie unbedarften Nutzern eine vereinfachte Adminstration und Einrichtung ihres Blogs/Themes, sie legen aber jede Menge Informationen in der Datenbank ab, die eigentlich auch direkt in den Templates gespeichert werden könnten. Die Themes von “woothemes” sind hier leider immer wieder Spitzenreiter und legen gern mal einige hundert Zeilen Informationen in der Datenbank ab.

WICHTIG: Datenbank-Backup anlegen

Bevor man irgendwas an der Datenbank ändert, ist zunächst ein Backup anzulegen! Jede kleinste, falsche Änderung kann im schlimmsten Fall dazu führen, dass der Blog danach nicht mehr funktioniert und gerettet werden muss. Also: Bevor ihr Zeilen löscht, erst ein Backup machen. Das funktioniert – auch OHNE PLUGIN – relativ einfach. Hier eine kleine Videoanleitung zu phpMyAdmin, das vermutlich auf den meisten Servern zum Einsatz kommen sollte.

Erst wenn das Datenbank-Backup erstellt und sicher auf deinem lokalen Rechner gespeichert ist, solltest du weitermachen!

Plugins deinstallieren

Der erste folgende Schritt ist die Deinstallation der als überflüssig festgestellten Plugins. Dazu könnte zum Beispiel “Socialize” gehören. Ist das Plugin deaktiviert und gelöscht (WordPress bringt die passenden On-Board-Mittel dazu ja gleich mit), wirst du aber feststellen, dass die Datenbank immer noch so zugemüllt wie vorher ist.

Datenbank bereinigen

Jetzt kommt der wichtigste Schritt: Alle Zeilen des zuvor deinstallierten Plugins müssen jetzt gelöscht werden. Dazu wählst du abermals die Tabelle “wp_postmeta” aus und markierst dort alle Zeilen, die überflüssigen Ballast enthalten. Ein Klick auf löschen (das ist in phpMyAdmin das rote “X”-Icon) wird die Zeilen löschen. Damit du aber nichts falsches löschst, musst du diesen Schritt dann noch einmal bestätigen. Erst danach sind die Zeilen wirklich gelöscht.

Zu löschende Zeilen auswählen

Zu löschende Zeilen auswählen

Löschen bestätigen

Löschen bestätigen

Suchfunktion nutzen

Nun kann das manuelle Auswählen einzelner Zeilen aber eine langwierige Angelegenheit werden, wenn ein Plugin jedem Beitrag 2, 3 Zeilen hinzugefügt hat. Aber auch da gibt es Abhilfe: Einfach die Suchfunktion nutzen. So lässt sich beispielsweise in phpMyAdmin nach einem Ausdruck suchen, die Suche liefert dann alle Zeilen mit diesem Ausdruck. So können alle Zeilen mit einem Mal gelöscht werden.

Betroffene Zeilen suchen

Betroffene Zeilen suchen

Suchergebnis

Suchergebnis

Letzter Schritt: Datenbank optimieren

Mit dem Löschen der Zeilen sind diese zwar verschwunden, bleiben aber als Überhang in der Datenbank bestehen. (Keine Ahnung warum das so ist, dafür kenne ich mich mit MySQL und phpMyAdmin zu wenig aus.) Diesen Überhang muss man dann noch loswerden. Dafür gibt es in MySQL die Bereinigungs-Option, in phpMyAdmin sieht das etwa so aus:

Überhang beseitigen - Datenbank optimieren

Überhang beseitigen - Datenbank optimieren

Vorher-Nachher-Vergleich

Ein Vergleich zeigt: Die Datenbanklast kann durch das Entfernen eines Plugins und des damit zugehörigen Bereinigen der Datenbank reduziert werden. Die “Ersparnis” in echter Größe mag marginal sein. Bei mir hat das Deinstallieren von Socialize aber immerhin dazu geführt, dass insgesamt 53 Zeilen gelöscht wurden. 53 Zeilen, die bei zukünftigen Datenbankaufrufen nicht berücksichtigt werden müssen. Setze ich jetzt noch bei anderen Plugins an, deren Aufgabe man auch mit etwas Programmieraufwand obsolet machen kann, so lässt sich die Datenbank noch weiter verkleinern.

Vorher

Vorher

Nachher

Nachher

Eure Erfahrungen

Wie sind eure Erfahrungen? Welche Plugins sind echte Ressourcenfresser und Datenbankbeschmutzer? Und wie viel Speicher konntet ihr durch die Bereinigung gewinnen, wie viele Zeilen löschen? Ich bin auf eure Ergebnisse gespannt!

Bitte sozial teilen

Wenn dir dieser Beitrag gefallen hat, dann teile ihn doch bitte in den verschiedenen sozialen Netzwerken! Du würdest mir damit sehr helfen!

Über den Autoren

Mein Name ist Christian. Ich blogge bereits seit 5 Jahren - manchmal mehr, manchmal weniger erfolgreich. Weil ich in der Anfangszeit meiner Erfahrungen mit den von WordPress gebotenen Möglichkeiten unzufrieden war, habe ich mir einiges Wissen zu dieser tollen Software selbst beigebracht. Aus diesen Erfahrungen ist das Projekt wpLove.de geboren. Neben WordPress bringe ich mir aber auch das Thema SEO selbst etwas näher.

7 Kommentare zu "Datenbank bereinigen und WordPress beschleunigen"

  1. Sergej Müller 24. Mai 2012 um 13:02 Uhr · Antworten

    Adrian, danke dir für den Artikel und den Vergleich.

    So 2 Mal im Jahr gehe ich ebenfalls durch die Datenbanktabellen durch. Manchmal bleiben da Reste von Transients-Einträgen, die ich dann manuell entferne. Dem Toolbox-Plugin liegt ja ein Modul namens optimize_db bei, welches seit der Aktivierung die Datenbanktabellen optimiert.

    Vielmehr ist da nicht zu machen. Aber zugegeben, habe ich auch nur eigene Plugins installiert 😉

    • Adrian 24. Mai 2012 um 13:07 Uhr · Antworten

      Das kann ich leider nicht von mit behaupten.;-)
      Ich finde es auch nur so schade, dass so viele Plugins so liederlich programmiert sind. Dazu gehört teilweise übrigens auch Yoast.;-)

      Der Beitrag sollte ja auch nur exemplarisch an einem Plugin zeigen, was man so machen kann/sollte.

  2. Jürgen 25. Mai 2012 um 10:05 Uhr · Antworten

    Mache es genauso wie Du, versuche möglichst viele Plugins durch Code im Theme zu ersetzen, bereinige immer wieder mal die DB manuell und nutze zusätzlich das Toolbox-Plugin von Sergej um die DB zu optimieren.

    Jede Website, also auch eine WP Installation bedarf eben laufender Pflege um die Performance zu behalten. Je mehr Plugins umso mehr Arbeit, aber das sollte ja bekannt sein 😉

    • Adrian 25. Mai 2012 um 10:25 Uhr · Antworten

      Nur leider ist das nicht immer allen klar. 😉
      Auch ich hatte schon Kunden die noch vor der Umsetzung einer Idee mit unzähligen Plugins um die Ecke kamen, die aber unbedingt eingebaut werden müssten. Ein Großteil war dann immer obsolet…

Trackbacks zu diesem Artikel

  1. Plugins in der WordPress-Grundausstattung › wpLove.de
  2. WordPress für hohe Besucherzahlen optimieren
  3. Wordpress: Sichern, Datenbank optimieren & reparieren - Der blasse Schimmer

Kommentar hinterlassen

XHTML Du kannst diese Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>