WordPress Datenbank optimieren – vier praktische Tipps

WordPress hat sich mittlerweile als quasi Standard für den Betrieb von Blogs durchgesetzt. Und das im Prinzip auch zu recht, nicht zuletzt dank der riesigen Menge an Plugins, Themes und Supportforen und -Blogs. Allerdings gibt es ein Problem, dass man für die eigene Installation selber lösen muss: Die Datenbank performant zu halten.

Mir fiel in letzter Zeit auf, wie ungewohnt schnell ich in manchen (meist neueren) Blogs von mir Artikel schreiben, editieren und veröffentlichen kann – und wie elendig lange das hier im Agenturblog dauert. Dieses träge Verhalten stellte sich übrigens nicht schlagartig, sondern eher in Form eines schleichenden Prozesses ein. Auch die Performance der Seite selbst lies in den letzten Wochen immer mehr zu wünschen übrig. Dabei stellen sicher die nach wie vor gut zweitausend täglichen Porno(be-)sucher ein großes Problem da, denn addiert mit den regulären Besuchern und Lesern die via Suchmaschine den Weg in dieses Blog finden, muss meine Installation an Spitzentagen deutlich über 5.000 Seitenaufrufe bewältigen.

Natürlich ist WordPress grundsätzlich in der Lage diese Werte zu bedienen, aber ab einem gewissen Punkt werden Optimierungen einfach zwingend erforderlich.

Im Folgenden habe ich eine kleine Liste mit Tipps zusammengestellt, die mir geholfen haben das Agenturblog wieder deutlich flotter zu gestalten. Natürlich würde ich diese Sammlung gerne um Euer Feedback und Eure Erfahrungen erweitern:

1. Weniger Queries in den Templates.
Das sollte der erste Schritt sein: Sind alle Datenbankabfragen die Euer Blog erzeugt wirklich erforderlich? Steht Sinn und Nutzen der vielen Plugins jeweils im Verhältnis zur Last, die sie erzeugen? In jedem Fall bietet ein gründliches Aufräumen und Aussortieren gleich den ersten großen Schritt zur Steigerung der Performance bzw. Reduzierung der Datenbank aufrufe.

2. Datenbank von altem Ballast befreien
Über die Monate und Jahre der Nutzung füllt sich eine WordPress Datenbank zunehmend mit Inhalten, die eigentlich niemand braucht. Unmengen von Spam Kommentaren schlummern vor sich hin, Tabellen und Informationen von Plugins die man kurz getestet aber wieder verworfen hat bleiben bestehen, ebenso alte Kategorien die seit dem Umstieg auf Tagging nicht mehr genutzt werden – hier gibt es viel aufzuräumen und zu optimieren. Dazu ist zum einen das Plugin Clean Options empfohlen, das alle verwaisten Einträge aus der wp_option Tabelle auflistet und zur Entfernung anbietet. Zum anderen bietet Dietmar Rabichs Database Tuning eine Reihe von Option zum entfernen alter Inhalte (bspw. Spam Kommentare), ausserdem untersucht es die einzelnen Tabellen, kann sie im Bedarfsfall reparieren oder durch das setzen neuer Indizes den Lesezugriff darauf optimieren.

Wie immer gilt natürlich vor dem Anfassen der Datenank: Backup nicht vergessen.

3. Unveröffentlichte Beiträge löschen
Ein weiterer Wust an überflüssigem Ballast sammelt sich über die Zeit im Bereich der Entwürfe oder Drafts an: All die Artikel die man (noch) nicht zu Ende geschrieben hat. Die Wahrscheinlichkeit, dass man an einen Wochen, Monate oder gar Jahre alten Beitrag jemals wieder Hand anlegt und ihn doch noch online stellt ist gering. Zumindest wenn ich mir mein Verhalten ansehe. So dümpeln schnell unzählige halbgare Artikel in der Datenbank herum. Wahrscheinlich oft us dem einfachen Grund der schlechten Verwaltungsmöglichkeiten der Drafts in WordPress. Schlichtweg eine kleine Katastrophe. Leidglich aktuellsten Entwürfe werden beim Verfassen neuer Artikel aufgelistet – keine Gesamtübersicht, keine Möglichkeit alle in einem Rutsch zu löschen – nichts. Mit dem kleinen Tool Draft Controll lässt sich endlich schnell und sinnvoll sortieren. Im Gegensatz zu den anderen Tipps lassen sich hiermit keine Riesensprünge im Hinblick auf eine Performance-Optimierung machen, dennoch – und wenn es nur für das gute Gefühl ist – macht es Sinn auch in diesem Bereich einmal aufzuräumen. Ich konnte 52 alte Entwürfe löschen.

4. Caching aktiviert?
Selbst mit reduzierter Anzahl von Queries und weniger Inhalten in der Datenbank kann es durchaus sinnvoll sein, Inhalte die bereits ausgeliefert wurden temporär zwischenzuspeichern und (innerhalb eines bestimmten Zeitfensters) ausschließlich als statische Seiten, also nahezu ohne neue Datenbankanfragen, zu übermitteln.

Dazu kann man wahlweise das Plugin WP-Cache nutzen, oder WordPress direkt zum Caching überreden. Vermutlich ist die letztere Variante die bessere Wahl und auch sehr einfach zu bewerkstelligen: Ihr legt einen beschreibbaren Ordner wp-content/cache an und ergänzt folgenden Eintrag in der wp-config.php:

define('ENABLE_CACHE', true);

Sofern man sein Blog auf einem eigenen Server betreibt kann man auch das MySQL Query-Cacheing aktivieren (Tipp gefunden beim Software-Guide.de).

Darüberhinaus gibt es für technisch sehr versierte Blogger noch die Option mithilfes des Plugins Gunnart.de. Dort findet man zusätzlich noch Infos zu dem Plugin WP-Cache Inspect, dass für den Admin auf jeder Artikelseite in einer semitransparenten Box Informationen zum Cacheing Status ausgibt – und im Admin Bereich die Option ergänzt per Knopfdruck den gesamten Cache zu leeren.

Fazit
In den letzten Tagen habe ich schrittweise alle diese Punkte auf dem Agenturblog abgearbeitet und freue mich im Augenblick wieder über ein relativ schnelles und aufgeräumtes System.

Kommentare (33)

  1. Pingback: Nerdcore — links for 2007-07-26

  2. Pingback: www.ben-inside.de

  3. Pingback: WordPress flottmachen - Datenbank entrümpeln » Digitalia

  4. Pingback: Wordpress Frühlingsputz im Sommer

  5. Pingback: Readster

  6. Vielen Dank für den Tipp gegen verwaiste Datensätze in wp_options! Vorgestern habe ich mich erst über das dortige Chaos geärgert und befürchtet, selbst herumpfuschen zu müssen. Dass es dafür ein eigenes Plugin gibt hätte ich nicht gedacht.

  7. Das Plugin um die wp_options endlich mal zu säubern kannte ich auch noch nicht, danke für den Tipp. Ich möchte noch anmerken, dass alle die noch eine WP Version vor 2.1 einsetzen auch wegen der Performance unbedingt upgraden sollten. Seit 2.1 gibt es einige Verbesserungen in der DB-Struktur, einige weitere Indexe etc. So wie ich das mitbekommen habe, wurden diese Anpassungen direkt vom MySQL.com Team durchgeführt.

    Grüße

    Paul

  8. Pingback: Macoholic - Notizen aus dem Leben

  9. Pingback: DimidoBlog » Bloglinks der Woche 23.07.-29.07.2007

  10. Pingback: Lesezeichen Vol. III : simoncolumbus.de

  11. Mein Blog ist auch so langsam geworden, nun werde ich deine Tipps mal abarbeiten. Vor allem die ausprobierten Plugins im Laufe der Zeit (Bei mir seit April 2006) müllen die DB richtig zu…

  12. Pingback: Nachrichtenauflauf vom 03. August 2007 at Lebensfreude pur

  13. Habe zwar erst frisch mit dem Bloggen angefangen, aber ich denke, wenn man gleich von Anfang an auf eine entschlackte DB achtet, ist dies bestimmt von Vorteil. Danke daher für den Post ;-)

  14. Pingback: Eine kleine Umstellung im System und Tips zum Säubern von Wordpress » RANDPOP Eine kleine Umstellung im System und Tips zum Säubern von Wordpress

  15. Pingback: RANDPOP

  16. Pingback: Der wilde Garten | links for 2007-08-07

  17. Pingback: dhaunsch » Blogwartung

  18. Danke für die Liste! Hab auch schon gehört dass es da irgendwann Probleme gibt. Aber jetzt muss mein Blog erst mal noch wachsen!

  19. Danke für die Tipps und die Verweise auf die Plugins. Habe Freitag einiges davon umgesetzt und tatsächlich wieder einiges an Speed gewonnen.

  20. Pingback: Links zum Wochenstart

  21. Pingback: Wordpress Database Tuning at Dramaking

  22. Pingback: Brauchen wir ein Gütesiegel für Wordpress Plugins? : agenturblog.de

  23. Pingback: Dave’s Blog » Wordpress Datenbank optimieren - vier praktische Tipps…

  24. Pingback: WoW-Blogger » Allgemein » Jetzt wird aufgeräumt!

  25. Vielen Dank für die Tipps, werde mich die nächsten Tage mal daran setzen meine WPMU Version ein wenig zu optimieren, meine Installation ist zwar noch nicht so alt aber die Performance lässt jetzt schon zu wünschen übrig.
    Grüsse

  26. Pingback: Wordpress sicherer machen - acht Tipps für den Hausgebrauch : agenturblog.de

  27. Pingback: agenturblog - Wordpress sicherer machen - acht Tipps für den Hausgebrau

  28. Pingback: Links #6 at franztoo

  29. Relativ viel Traffic und Performance des Servers verbraucht auch der Googlebot beim Spidern des Blogs. Besonders bei Blogs mit vielen Seiten. Wer nicht unbedingt darauf Wert legt, dass der Googlebot neue Seiten möglichst schnell indiziert kann deshalb in den Google Webmastertools die Indizierungsgeschwindigkeit herabsetzen.

  30. Das mit der Google-Crawlrate kannte ich garnicht, klingt auf jedenfall interessant, aber ich vermute mal, dass die meisten viel Wert darauf legen, dass Google oft und schnell kommt ;-)

Kommentare sind geschlossen.