Zwar sind alle Komponenten einer WordPress-Website wichtig, doch deine Datenbank ist wohl der entscheidende Faktor. Hier werden praktisch alle Informationen deiner Website gespeichert und abgerufen. Daher muss die Optimierung deiner WordPress-Datenbank einfach perfekt sein.

Eine Datenbank, die unter Überfrachtung und Leistungsproblemen leidet, verlangsamt deine Website und beeinträchtigt deine Suchrankings. Außerdem könntest du damit auch die gesamte User Experience (UX) beeinträchtigen. Das wiederum kann sich auf deine Besucherzahlen auswirken und sich (neben anderen Problemen) auf deine Platzierungen in den Suchergebnissen auswirken.

In diesem Tutorial betrachten wir die Optimierung der WordPress-Datenbank aus verschiedenen Blickwinkeln. Wir sprechen über die allgemeine Struktur, die du vorfindest, sowie über zahlreiche Optimierungstechniken, die du anwenden kannst. Außerdem stellen wir dir Tools und Dienste vor, die dir helfen, deine Datenbanken am Laufen zu halten.

So verstehst du die Struktur der WordPress-Datenbank

Kurz gesagt: Die WordPress-Datenbank ist das Rückgrat deiner Website. Sie enthält fast alles, wie zum Beispiel Inhalte, Nutzerdaten, Einstellungen und vieles mehr. Bei WordPress sind die Datenbank-„Tabellen“ für die Speicherung bestimmter Arten von Informationen zuständig.

Die Plattform nutzt die Datenbankmanagementsysteme MySQL oder MariaDB, und du greifst mit Tools wie phpMyAdmin oder Adminer darauf zu:

Die phpMyAdmin-Oberfläche eines Kinsta-Hosting-Dienstes, die eine Liste der WordPress-Datenbanktabellen mit Optionen für Aktionen wie „Durchsuchen“, „Struktur“, „Suchen“, „Einfügen“ und „Löschen“ anzeigt. Zu den angezeigten Tabellen gehören wp_commentmeta, wp_comments, wp_links, wp_options, wp_postmeta, wp_posts, wp_termmeta, wp_terms, wp_term_relationships, wp_term_taxonomy, wp_usermeta und wp_users.
Zugriff auf eine WordPress-Datenbank mit phpMyAdmin

Beispielsweise enthält die Tabelle wp_posts deine Beiträge und Seiten, während wp_users Daten über die Nutzer deiner Website enthält. Wir werden uns einige dieser Tabellen gleich genauer ansehen.

Bei der Installation erstellt WordPress eine Reihe von Standardtabellen, die alle typischen Anwendungsfälle abdecken, die du benötigst. Allerdings können auch Plugins, Themes und die Installation selbst Tabellen erstellen, um spezifische und zugehörige Daten zu speichern.

Dieser modulare Ansatz ist in vielerlei Hinsicht hervorragend, da er umfangreiche Funktionen ermöglicht. Auf der anderen Seite können jedoch zu viele überflüssige Tabellen (zusammen mit einer schlechten Verwaltung) auch zu einer Überfrachtung führen.

Das Verständnis der Datenbankstruktur von WordPress ist aus zwei Gründen entscheidend:

  • Leistung. Eine gut organisierte Datenbank ermöglicht es dir, Daten schneller abzurufen, was sich direkt auf Ladezeiten und Leistung auswirkt.
  • Wartung. Zu wissen, welche Tabellen den verschiedenen Teilen deiner Website entsprechen, hilft dir bei der Wartung. Wenn zum Beispiel ein bestimmtes Plugin Probleme verursacht, kannst du die damit verbundenen Tabellen überprüfen.

Regelmäßiges Bereinigen und Optimieren der Tabellen deiner Datenbank kann verhindern, dass diese zu groß und unübersichtlich werden. Wie bereits erwähnt, könnten sich die Auswirkungen negativ auf die Leistung auswirken.

WordPress-spezifische Tabellen

Websites aller Art nutzen Datenbanken, nicht nur WordPress. Die Plattform hat ihre eigenen Datenbanktabellentypen und -funktionen, und wenn du diese optimieren möchtest, ist es wichtig, sie vollständig zu verstehen.

Wir werden hier zwar nicht auf alle eingehen, aber bestimmte Tabellen wirst du häufiger nutzen als andere:

  • wp_options. Hier werden deine websiteweiten Einstellungen gespeichert, und es handelt sich wohl um eine der am häufigsten aufgerufenen Tabellen in deiner Datenbank. Du solltest diese Tabelle durch gute Optimierung schlank halten.
  • wp_postmeta. Hier befinden sich die Metadaten deiner Beiträge. Wenn deine Website wächst, kann diese Tabelle zu einer der größten in deiner Datenbank werden.
  • wp_users sowie wp_usermeta. Alle Informationen zu den Nutzern deiner Website und deren Metadaten befinden sich in diesen beiden Tabellen. In seltenen Fällen musst du hier vielleicht nachsehen, um ein Passwort zu ändern, falls du dich aus WordPress ausgesperrt hast.

Denk daran, dass jedes zusätzliche Plugin oder Theme, das du deiner Website hinzufügst, diese Struktur ebenfalls verändern kann. Es kommt jedoch selten vor, dass ein Theme oder Plugin eine dieser Tabellen entfernt.

Trotzdem solltest du diese potenziellen Änderungen regelmäßig überprüfen und verstehen. Das ist entscheidend für die Pflege einer optimierten Datenbank, die die Leistung deiner Website unterstützt, anstatt sie zu beeinträchtigen.

Warum die Optimierung der WordPress-Datenbank für die meisten Websites notwendig ist

Die Optimierung deiner WordPress-Datenbank ist nicht nur eine bewährte Vorgehensweise, sondern eine Notwendigkeit für die meisten Websites, die ein nahtloses Nutzererlebnis bieten wollen. Deine Datenbank ist der zentrale Speicherort für alle wichtigen Daten deiner Website. Ihr Zustand wirkt sich direkt auf die Leistung, Geschwindigkeit und Zuverlässigkeit deiner Website aus.

Daher gibt es zwei allgemeine Gründe, warum die regelmäßige Optimierung der WordPress-Datenbank ein fester Bestandteil deines Arbeitsablaufs sein sollte:

  • Verbesserte Geschwindigkeit und Leistung der Website. Im Laufe der Zeit sammelt sich in deiner WordPress-Datenbank unnötiger oder redundanter Daten an, wie zum Beispiel temporäre Optionen, Beitragsrevisionen, Spam-Kommentare oder veraltete Entwürfe. Diese Überfrachtung verlangsamt das Abrufen von Informationen.
  • Verbessertes Nutzererlebnis. Nutzer erwarten zudem ein reibungsloses und schnelles Surferlebnis. Eine gut optimierte Datenbank sorgt für schnelleres Laden der Seiten und eine effizientere Datenverarbeitung. Einfach gesagt: Jede Interaktion auf der Website basiert auf Datenbankabfragen. Mit höherer Effizienz geht ein besseres Nutzererlebnis einher.

Es gibt auch einige fortgeschrittenere Gründe, warum du deine Datenbank unbedingt optimieren solltest. Eine nicht optimierte Datenbank belastet beispielsweise deinen Server zusätzlich, da dieser mehr Arbeit leisten muss, um Daten zu finden und bereitzustellen. Das hat kritische Auswirkungen, wenn du Shared Hosting mit begrenzten Ressourcen nutzt. Das ist unter anderem ein Grund, warum Kinsta überhaupt kein Shared Hosting anbietet.

Außerdem wächst deine Datenbank mit deiner Website mit. Auch wenn du anfangs vielleicht ein kleines, überschaubares System betreibst, kann dessen Komplexität schnell zunehmen. Durch regelmäßige Optimierung stellst du sicher, dass deine Datenbank die Skalierung deiner Website bewältigen kann, ohne dass die Leistung darunter leidet.

Kurz gesagt: Die Optimierung der WordPress-Datenbank verkürzt die Ladezeiten. Schon eine Verzögerung von wenigen Sekunden beim Laden kann zu höheren Absprungraten und Traffic-Verlusten führen – was für deine Suchrankings keine gute Nachricht ist.

So führst du regelmäßige Wartung und Bereinigung durch

Wenn du deine WordPress-Datenbank bereinigst und regelmäßig wartest, hast du eine der besten Möglichkeiten, deinen Blog so reibungslos wie möglich laufen zu lassen. Allerdings können Datenbanken im Laufe der Zeit mit unnötigen Daten überladen werden, daher ist ein regelmäßiger und konsequenter Arbeitsablauf wichtig.

Außerdem solltest du alle dir zur Verfügung stehenden Tools und Dienste optimal nutzen. Die gute Nachricht ist, dass WordPress eine Reihe von Möglichkeiten zur Pflege deiner Datenbank bietet.

Wenn du dich für ein Plugin entscheidest, stelle sicher, dass es den Anforderungen von Kinsta entspricht und nicht auf unserer Liste der gesperrten Plugins steht.

Für diese Anleitung verwenden wir WP-Sweep – ein gut bewertetes und regelmäßig aktualisiertes Plugin.

Das Header-Bild von WordPress.org für das WP-Sweep-Plugin
Der WP-Sweep-Header von WordPress.org

Im Laufe dieses Beitrags zeigen wir dir, wie du deine WordPress-Datenbank mit diesem Plugin optimieren kannst, aber du kannst die Anweisungen auch auf das Plugin deiner Wahl übertragen.

In den nächsten Abschnitten gehen wir näher darauf ein und behandeln sowohl den manuellen Ansatz als auch die Verwendung von WP-Sweep. Auf die eigenen Tools von Kinsta gehen wir später ein. Zunächst wollen wir uns aber mit einigen Aufgaben vor der Optimierung befassen.

Was du tun solltest, bevor du mit der Optimierung beginnst

Bevor du dich an deine Datenbank machst, gibt es ein paar einfache Aufgaben, die du erledigen solltest. Zunächst solltest du immer ein vollständiges Backup deiner Website und deiner Datenbank erstellen. Sollte der schlimmste Fall eintreten und du deine Website beschädigen, kannst du sie innerhalb von Minuten wiederherstellen.

Außerdem solltest du alle Plugins oder Themes löschen, die du auf deiner Website nicht verwendest. Das könnte einige Probleme lösen – und zwar nicht nur in Bezug auf deine Datenbank. Es kann auch dazu beitragen, die Sicherheit deiner Website zu verbessern.

Das WordPress-Dashboard zeigt eine Liste der installierten Plugins an. Jedes Plugin verfügt über eine Beschreibung sowie Optionen zum Aktivieren, Deaktivieren oder Löschen und Einstellungen für automatische Updates.
Der Plugin-Bildschirm in WordPress

Beachte jedoch, dass je nach Plugin oder Theme dadurch unerwünschte Tabellen zurückbleiben können. Das ist natürlich genau der Grund, warum wir die Datenbank optimieren wollen – daher ist es hilfreich, zu wissen, welche Plugins und Themes temporäre Daten hinterlassen.

Die letzte Aufgabe findest du, sobald du dich bei deinem bevorzugten Datenbankverwaltungstool anmeldest. Datenbankfehler können natürlich ein Hinweis auf Leistungsprobleme sein, daher solltest du diese beheben, bevor du weitere Optimierungen durchführst.

Kurz gesagt: Wähle alle deine Tabellen aus und klicke dann auf die Schaltfläche Tabelle prüfen, um einen Bericht zu erstellen.

Das phpMyAdmin-Tool mit der Option „Tabelle prüfen“. Links sind verschiedene Tabellennamen wie wp_termmeta und wp_users zu sehen, jeweils mit Aktionssymbolen für Aufgaben wie Durchsuchen und Suchen. Rechts zeigt ein Kontextmenü Optionen für Tabellenoperationen wie Exportieren und Optimieren an.
Auswahl der Option „Tabelle prüfen“ in phpMyAdmin

Wenn „OK“ oder etwas Ähnliches angezeigt wird, ist alles optimal. Eventuelle Fehler müssen jedoch behoben werden, bevor du fortfährst. Hier könnte eine Supportanfrage sinnvoll sein.

1. Optimiere deine Datenbanktabellen

Der erste Schritt besteht darin, die Tabellen in deiner Datenbank zu optimieren. Wenn du dies manuell tun möchtest, klicke in deinem Verwaltungstool auf den Link Datenbanken und wähle dann deine Datenbank aus:

Die phpMyAdmin-Oberfläche von Kinsta mit der Registerkarte „Datenbanken“. Es werden zwei Datenbanken angezeigt, und für beide stehen Aktionen zum Überprüfen der Berechtigungen zur Verfügung.
Auswahl einer Datenbank in phpMyAdmin

In vielen Fällen befindest du dich bereits in der Datenbank deiner WordPress-Website. Unabhängig davon siehst du eine Liste der Tabellen in deiner Datenbank. Wähle einfach alle auf einmal aus und wähle dann die Option Tabelle optimieren aus dem Dropdown-Menü, bevor du auf Los klickst:

Ein Kontextmenü in phpMyAdmin für eine ausgewählte Liste von WordPress-Datenbanktabellen, wobei die Option „Tabelle optimieren“ hervorgehoben ist. Zu den weiteren Optionen gehören „Tabelle kopieren“, „Erstellungsbefehl anzeigen“, „Exportieren“, „Leeren“, „Löschen“ sowie Aktionen zur Tabellenpflege.
Alle Datenbanktabellen mit phpMyAdmin optimieren

Nach einer Weile siehst du einen Bericht, der den Status jeder Tabelle in deiner Datenbank zusammenfasst:

Die phpMyAdmin-Oberfläche zeigt eine Meldung an, die den erfolgreichen Abschluss der SQL-Abfrage zur Optimierung der WordPress-Datenbanktabellen bestätigt. Unterhalb der Meldung werden die einzelnen Tabellen mit Hinweisen zu ihrem Optimierungsstatus aufgelistet.
Der Optimierungsbericht in phpMyAdmin

Gehe bei WP-Sweep zu Tools > Sweep. Scrolle dort nach unten zum Abschnitt Database Sweep und klicke auf die Schaltfläche Sweep neben der Option Optimize Tables:

Ein Ausschnitt aus der Benutzeroberfläche des WP-Sweep-Plugins im WordPress-Dashboard, in dem die Option „Tabellen optimieren“ ausgewählt ist und die Schaltfläche „Sweep“ hervorgehoben ist. Die Benutzeroberfläche zeigt an, dass die Optimierung 12 Tabellen betrifft.
Die Schaltfläche „Run optimizations“ im Dashboard von WP-Sweep

Das Plugin durchläuft alle Tabellen und zeigt dir anschließend eine Erfolgsmeldung an. Jetzt kannst du mit den Beitragsrevisionen weitermachen.

2. Beitragsrevisionen bereinigen

Das Revisionssystem von WordPress führt dazu, dass sich mit der Zeit immer mehr gespeicherte Versionen ansammeln. Du kannst diese ganz einfach mithilfe von SQL-Abfragen aus deiner Datenbank entfernen. Am einfachsten geht das mit einer einzigen Zeile:

DELETE FROM wp_posts WHERE post_type = 'revision';

Damit werden alle Arten von Beitragsrevisionen aus der Tabelle gelöscht. Es gibt jedoch auch zugehörige Daten in anderen Tabellen. Um all diese Daten zu erfassen und zu entfernen, kannst du die folgenden SQL-Anweisungen verwenden:

DELETE FROM wp_posts WHERE post_type = 'revision';
DELETE FROM wp_term_relationships WHERE object_id NOT IN (SELECT ID FROM wp_posts);
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);

Profi-Tipp: Beim Bearbeiten von Datenbanktabellen mit vielen Zeilen (insbesondere bei komplexeren Verknüpfungen wie den oben genannten) kann es bei lang laufenden Abfragen zu einem Timeout kommen. In MySQL, MariaDB und PostgreSQL kannst du eine LIMIT-Klausel verwenden, um die Aufgabe in kleinere Schritte aufzuteilen:

DELETE FROM wp_postmeta 
WHERE post_id NOT IN (SELECT ID FROM wp_posts)
LIMIT 10000;

Diese SQL-Anweisung könnte wiederholt ausgeführt werden – in diesem Fall werden dabei jedes Mal bis zu 10.000 Einträge entfernt –, bis deine Tabelle bereinigt ist.

Und natürlich solltest du das richtige Tabellenpräfix für deine eigene Datenbank verwenden, wenn du diese SQL-Beispiele kopierst und einfügst.

Mit einem Plugin dauert diese Aufgabe nur wenige Sekunden. Ähnlich wie bei der allgemeinen WordPress-Datenbankoptimierung bietet dir WP-Sweep eine Ein-Klick-Schaltfläche direkt in WordPress:

Das Dashboard des WP-Sweep-Plugins mit Schwerpunkt auf Datenbankoptimierung
Die Optionen zum Löschen von Revisionen und automatischen Entwürfen in WP-Sweep

In Zukunft kannst du die Anzahl der von WordPress verwendeten Revisionen begrenzen, indem du deine wp-config.php-Datei bearbeitest. Füge hier die folgende Zeile in die Datei ein und speichere deine Änderungen:

define( 'WP_POST_REVISIONS', X );

Hier steht X für die Anzahl der Revisionen, die du behalten möchtest. Du könntest hier auch false angeben, aber davon raten wir ab. Du solltest immer mindestens eine Revision als Rückfalloption haben, falls du sie brauchst.

3. Spam-Kommentare und in den Papierkorb verschobene Einträge löschen

Wir können auch SQL-Abfragen nutzen, um Spam-Kommentare zu entfernen. Beachte, dass beim Moderieren von Kommentaren unerwünschte Einträge 30 Tage lang in deiner Datenbank verbleiben. Das bedeutet, dass Kommentare, die innerhalb dieses Zeitraums als Spam markiert wurden, in deiner Datenbank verbleiben.

Du kannst diese mit ein paar Zeilen SQL in deinem Datenbankverwaltungsprogramm vollständig löschen:

DELETE FROM wp_comments, wp_commentmeta
USING wp_comments
LEFT JOIN wp_commentmeta ON wp_comments.comment_ID = wp_commentmeta.comment_id
WHERE wp_comments.comment_approved = 'spam’;

Ähnlich verhält es sich mit Beiträgen, die du in WordPress in den Papierkorb verschiebst. Möglicherweise befinden sich viele Inhalte „in der Schwebe“, die du mit einer weiteren SQL-Abfrage löschen kannst:

DELETE p, pm, tr
FROM wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id
LEFT JOIN wp_term_relationships tr ON p.ID = tr.object_id
WHERE p.post_status = 'trash';

Wie bei den Beitragsrevisionen kannst du in der wp-config.php Werte für die Zeitspanne festlegen, nach der Papierkorb-Elemente entfernt werden:

define( 'EMPTY_TRASH_DAYS', X )

In WP-Sweep gibt es eine Option, die dir beim Entfernen von Spam-Kommentaren hilft:

Ein Ausschnitt aus dem WP-Sweep-Plugin im WordPress-Dashboard, der verschiedene Bereinigungsoptionen zeigt, wie zum Beispiel das Löschen von Spam und nicht freigegebenen Kommentaren
Lösche Spam-Kommentare und nicht freigegebene Kommentare in WP-Sweep

Es gibt auch die Option, nicht genehmigte Kommentare zu entfernen. Das kann in manchen Situationen nützlich sein, wir würden es aber nicht empfehlen. Moderier diese Kommentare stattdessen lieber und lösche sie dann, falls nötig.

4. Nicht verwendete Tags entfernen

Taxonomien sind wichtig für WordPress, können aber mit der Zeit zu einer riesigen Sammlung anwachsen. Dies ist ein hervorragender Anwendungsfall für die Optimierung deiner Datenbank, und wie bei anderen Techniken kannst du eine SQL-Abfrage verwenden:

DELETE t, tt
FROM wp_terms AS t
INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id
LEFT JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE tt.taxonomy = 'post_tag' AND tt.count = 0;

Die Option in WP-Sweep, die dem Entfernen ungenutzter Tags am nächsten kommt, ist Post Orphaned Meta. Diese prüft, ob du verwaiste Metadaten hast, und entfernt diese:

Die Benutzeroberfläche des WP-Sweep-Plugins mit Optionen für verwaiste Meta-Daten von Beiträgen
Die Optionen in WP-Sweep zum Löschen verwaister Beitrags-Metadaten

Auch wenn diese Option möglicherweise Kategorien und andere Daten entfernt, ist sie eine sichere Lösung, vor allem, wenn kein anderer Beitrag oder keine andere Seite diese verwendet.

5. Pingbacks und Trackbacks entfernen

Wir wissen nicht genau, wie viele WordPress-Websites heutzutage noch Pingbacks und Trackbacks nutzen, aber sie können deine Datenbank dennoch überladen, wenn du die Einstellung aktiviert lässt. Als Erstes solltest du prüfen, ob diese Option bei dir deaktiviert ist. Das ist ganz einfach über den Bildschirm Einstellungen > Diskussion in WordPress zu erledigen:

Der Bildschirm „Diskussionseinstellungen“ im WordPress-Dashboard zeigt Kontrollkästchen für Standard-Beitragseinstellungen an, wie zum Beispiel die Benachrichtigung verlinkter Blogs, das Zulassen von Link-Benachrichtigungen von anderen Blogs und die Möglichkeit für Nutzer, Kommentare zu neuen Beiträgen abzugeben.
Der Bildschirm „Diskussionseinstellungen“ in WordPress mit den Optionen für Pingbacks und Trackbacks

Stelle im Abschnitt Standard-Beitragseinstellungen sicher, dass du die Optionen „Versuchen, andere Blogs zu benachrichtigen …“ und „Link-Benachrichtigungen zulassen …“ deaktivierst, und speichere deine Änderungen. Kehre anschließend zu deinem Datenbankverwaltungsprogramm zurück und führe die folgende Abfrage aus:

DELETE c, cm
FROM wp_comments c
LEFT JOIN wp_commentmeta cm ON c.comment_ID = cm.comment_id
WHERE c.comment_type IN ('trackback', 'pingback’);

Beide befinden sich an derselben Stelle wie Kommentare, allerdings ist der Typ ein anderer – und genau darauf konzentriert sich die Abfrage. Sobald du diesen Schritt abgeschlossen hast, solltest du in deiner Datenbank keine Trackbacks oder Pingbacks mehr sehen!

Kinstas kontinuierliche Datenbankoptimierung

Wenn du Kinsta-Kunde bist, hast du wahrscheinlich schon gehört, dass wir eine kontinuierliche Datenbankoptimierung für WordPress-Websites anbieten. Es ist wichtig zu wissen, dass diese automatische Optimierung auf den unteren Ebenen des Datenbankservers stattfindet – also bei der Verwaltung von Cache und Speicherauslastung – und keine Daten in RDBMS-Tabellen optimiert.

Überwachung der Datenbankleistung

Die Überwachung der Leistung deiner WordPress-Datenbank ist ein wesentlicher Bestandteil des Betriebs einer Website. Sie hilft dir, potenzielle Probleme zu erkennen, bevor sie eskalieren, und stellt sicher, dass deine Website effizient und reaktionsschnell bleibt.

Viele der Techniken, die wir in diesem Beitrag behandeln, dienen der Leistungsüberwachung, wie zum Beispiel die Verwendung von EXPLAIN bei langsamen Abfragen. Es gibt jedoch noch viel mehr Möglichkeiten. Tatsächlich enthält phpMyAdmin eigene Leistungskennzahlen auf der Registerkarte Status für den Server:

Die Registerkarte „Status“ in phpMyAdmin zeigt ein Kreisdiagramm und eine Liste von SQL-Anweisungen samt deren Häufigkeit an. Das Diagramm veranschaulicht die Verteilung von Operationen wie „set option“, „show variables“ und „select“ seit dem Start des Servers.
Der Status-Bildschirm von phpMyAdmin

Hier kannst du die Ausführungszeiten und Abläufe von Abfragen einsehen (auf der Registerkarte Abfragestatistiken), was dir hilft, die Abfragen zu identifizieren, die optimiert werden müssen. Für die erweiterte Überwachung ist MySQL Workbench von unschätzbarem Wert:

Eine Detailansicht von MySQL Workbench, in der zwei SQL-Abfragen im Editor und darunter im Ergebnisbereich angezeigt werden. In der linken Seitenleiste sind die Datenbankschemata aufgelistet, und die Symbolleiste oben bietet verschiedene Funktionen zur Datenbankverwaltung. Ein Schnipselfeld auf der rechten Seite bietet Hilfe zur SQL-Syntax.
Die Hauptoberfläche von MySQL Workbench

Damit stehen dir erweiterte Funktionen für Datenbankdesign, -entwicklung und -administration zur Verfügung. Außerdem bietet es Leistungsberichte und Diagnosen, mit denen du deine Datenbank optimieren kannst.

In WordPress kannst du mit dem bewährten Query Monitor-Plugin Datenbankabfragen, Hooks, Bedingungen, HTTP-Anfragen und vieles mehr überwachen.

Die WordPress.org-Kopfzeile für das Query Monitor-Plugin. Sie zeigt Abfragen nach Komponenten an, wobei der Schwerpunkt auf Komponenten wie „wordpress-seo“ und „woocommerce“ liegt. HTTP-Anfragen werden mit Methoden, URLs und Statusangaben aufgelistet, dazu gibt es einen Bereich für Warnungen und Hinweise.
Das Query Monitor-Plugin

Es ist besonders nützlich, um langsame Abfragen zu erkennen und die Plugins oder Themes zu identifizieren, die diese verursachen. In den meisten Fällen handelt es sich jedoch um ein Entwicklungs-Plugin, das daher möglicherweise nicht für eine Produktionsseite geeignet ist.

Überwachung der Datenbankleistung mit dem APM-Tool

Das Application Performance Monitoring (APM)-Tool von Kinsta im MyKinsta-Dashboard bietet eine weitere Möglichkeit, die Datenbankleistung im Auge zu behalten:

Das Kinsta-APM-Dashboard mit dem Diagramm „Gesamttransaktionszeit“, das die Antwortzeit über einen bestimmten Zeitraum nach PHP, MySQL und externen Diensten aufschlüsselt. Im Abschnitt darunter werden die „langsamsten Transaktionen“ mit Kennzahlen wie Gesamtdauer und durchschnittlicher Dauer aufgelistet.
Das Kinsta-APM-Tool

APM behält deine langsamsten SQL-Abfragen im Blick:

Die Kinsta-APM-Oberfläche zeigt ein Diagramm mit dem Titel „Langsamste Datenbankabfragen“ an, in dem verschiedene SQL-Operationen im Zusammenhang mit WordPress-Einstellungen wie SELECT, UPDATE, INSERT, SHOW und DELETE aufgelistet sind, zusammen mit ihren prozentualen Anteilen an der Gesamtdauer, der Gesamtdauer in Millisekunden, der maximalen Dauer, der durchschnittlichen Dauer und der Häufigkeit pro Minute.
Ein Bericht aus dem Kinsta-APM, der die langsamsten Abfragen in der Datenbank anzeigt

Du greifst über das MyKinsta-Dashboard auf APM zu, genauer gesagt über den APM-Bildschirm. Beachte, dass du diese Funktion möglicherweise erst aktivieren musst:

Ein Dashboard des Kinsta-Hosting-Dienstes, auf dem der Bereich „Application Performance Monitoring“ (APM) angezeigt wird. Es enthält eine kurze Erläuterung der APM-Funktion sowie Hinweise zu deren Nutzung. Eine Schaltfläche „APM aktivieren“ ist gut sichtbar platziert, damit der Nutzer den Dienst aktivieren kann.
Die Option zum Aktivieren von APM im MyKinsta-Dashboard

Von hier aus musst du APM etwas Zeit geben, um Daten zu sammeln. Sobald die Daten jedoch sichtbar sind, kannst du die Abfragen überprüfen, die möglicherweise weiter optimiert werden müssen.

So optimierst du Datenbankabfragen für mehr Effizienz

Die Optimierung deiner Datenbankabfragen ist entscheidend, um die Leistung und Geschwindigkeit deiner WordPress-Seite zu verbessern. Effiziente Abfragen bedeuten einen schnelleren Datenabruf, was wiederum zu kürzeren Ladezeiten und einer besseren Benutzererfahrung führt.

Da du möglicherweise Abfragen zur Optimierung der WordPress-Datenbank verwendest, findest du hier ein paar Tipps, wie du diese effizienter gestalten kannst:

  • Optimiere deine Abfragestrukturen. Du wirst feststellen, dass wir in unseren Beispielabfragen keine Platzhalter (oder Sternchen) verwenden. Anstelle von SELECT * solltest du genau angeben, welche Spalten du benötigst. Verwende außerdem nach Möglichkeit JOIN anstelle von Unterabfragen. Unterabfragen können weniger effizient sein, insbesondere wenn sie keine gute Struktur haben oder große Datensätze betreffen.
  • Nutze Abfrage-Caching. Tools wie Redis können die Ergebnisse von Abfragen im Arbeitsspeicher speichern. Das bedeutet, dass die Ergebnisse der Abfrage aus dem Cache bereitgestellt werden können, anstatt die Datenbank beim nächsten Mal erneut abzufragen.

Das sind zwar eher allgemeine Tipps, aber es gibt noch viel mehr, was du hier tun kannst. Schauen wir uns das als Nächstes kurz an.

Tipps zur fortgeschrittenen WordPress-Datenbankoptimierung und Fehlerbehebung

„Indizierung“ kann dir helfen, eine Art Schnellreferenz für deine Datenbank zu erstellen. Sie hilft dem Datenbankserver, Daten schneller zu finden, ohne jede Zeile einer Tabelle durchscannen zu müssen.

Um das zu erreichen, identifiziere die Spalten, die in deinen Abfragen häufig verwendet werden, und erwäge, Indizes für sie hinzuzufügen. Das kannst du in phpMyAdmin (oder einem ähnlichen Tool) tun. Klicke zunächst auf die Tabelle, die du indizieren möchtest, und wechsle zum Reiter Struktur:

Die Registerkarte „Struktur“ in phpMyAdmin für die Tabelle „wp_posts“ einer WordPress-Datenbank. Dort wird eine Liste der Spalten mit Typen, Sortierreihenfolge, Attributen und verfügbaren Aktionen wie „Ändern“ und „Löschen“ angezeigt.
Aufrufen der Registerkarte „Struktur“ für eine Tabelle in phpMyAdmin

Wähle als Nächstes die Spalten aus, die du indizieren möchtest, und wähle die Option Index am unteren Rand der Tabelle:

Eine Nahaufnahme eines Ausschnitts in phpMyAdmin, in dem die Option „Index“ für eine WordPress-Datenbanktabelle hervorgehoben ist. Weitere Optionen wie „Durchsuchen“, „Ändern“, „Löschen“, „Primär“, „Eindeutig“, „Räumlich“ und „Volltext“ sind ebenfalls zu sehen.
Spalten in phpMyAdmin indizieren

Sobald du deine Änderungen speicherst, werden diese Spalten indiziert.

Die Anweisung EXPLAIN kann dir außerdem helfen zu verstehen, wie MySQL deine Abfrage ausführt. So kannst du Ineffizienzen erkennen und nachvollziehen, wie deine Abfrage mit den Indizes interagiert. Um dies auszuführen, füge die Anweisung am Anfang einer bestehenden Abfrage ein. Wenn du sie ausführst, schlüsselt SQL auf, wie die Abfrage ausgeführt wird:

Das Ausgabefenster für SQL-Abfragen in phpMyAdmin, in dem eine Meldung über die erfolgreiche Ausführung einer SQL-Abfrage angezeigt wird. Unterhalb der Meldung befindet sich ein SQL-Befehl, der eine Löschoperation in den Kommentar-Tabellen von WordPress erläutert, zusammen mit Details zum Ausführungsplan der Abfrage.
Die Ausgabe einer Abfrage, der eine EXPLAIN-Anweisung vorangestellt wurde

Wir können hier nicht alles über die EXPLAIN-Anweisung abdecken, obwohl die MySQL-Dokumentation fast alles enthält, was du darüber wissen musst.

Umgang mit großen Datenbanken in WordPress

Wenn eine WordPress-Website an Inhalt, Nutzern und Traffic wächst, vergrößert sich natürlich auch ihre Datenbank. Eine große Datenbank ist etwas, mit dem du beim Betreiben einer Website häufig konfrontiert sein wirst (oder worüber du dir Sorgen machen wirst).

Die meisten Ratschläge, die wir in diesem Artikel geben, eignen sich auch für große Datenbanken – und deren Verkleinerung. Es gibt jedoch noch viele weitere Tipps für Datenbanken, die von Natur aus größer sind als üblich:

  • Archiviere ältere Daten. Anstatt alle Daten aktiv zu halten, solltest du in Erwägung ziehen, alte Beiträge oder Nutzerdaten zu archivieren, auf die du nicht regelmäßig zugreifst.
  • Nutze ein Content Delivery Network (CDN). Das Auslagern und Bereitstellen statischer Ressourcen wie Bilder, Videos und Downloads über einen anderen Server kann die Belastung deiner Website verringern und dazu beitragen, sie zu beschleunigen. Außerdem wird deine Website für Nutzer schneller geladen, egal wo sie sich befinden.
  • Maßgeschneiderte Abfragen. Wenn du WordPress-Entwickler bist, schreibe effiziente Abfragen für deine Themes und Plugins. So rufst du nur das ab, was du brauchst, und hältst die Effizienz hoch.

Du kannst sogar fortgeschrittene Techniken wie Tabellenpartitionierung und „Datenbank-Sharding“ in Betracht ziehen. Dabei werden die Daten auf mehrere Datenbanken aufgeteilt. Das ist oft komplex und erfordert in der Regel die Betreuung durch Experten.

Apropos: Experten sind unverzichtbar, wenn es um hohe Leistung deiner Datenbank und der damit verbundenen Website geht. Das WordPress-Hosting von Kinsta ist skalierbar, verwaltet und für die Plattform optimiert.

Das Kinsta-Hosting-Dashboard zeigt „Website-Informationen“ mit Abschnitten zu grundlegenden Details, Umgebungsdaten und SFTP-/SSH-Informationen an. Es werden Diagramme zu Website-Besuchen und zur Gesamttransaktionszeit angezeigt, die Einblicke in die Website-Leistung bieten.
Die Website von Kinsta WordPress-Hosting

Die Tarife beginnen bei 35 $ pro Monat, und unsere Architektur unterstützt alles von einem einfachen Blog bis hin zu Netzwerken auf Unternehmensniveau. Schreib uns einfach, um herauszufinden, wie wir dein langfristiger Hosting-Partner werden können – ganz gleich, welche Ziele du verfolgst.

Zusammenfassung

Deine WordPress-Datenbank ist wie der Motor eines Autos: Ohne Feinabstimmung läuft sie nicht so gut, wie du es brauchst. Tatsächlich kann eine mangelnde Optimierung deiner WordPress-Datenbank dazu führen, dass du in den Suchergebnissen vom ersten auf den letzten Platz rutschst. Auch deine Nutzer werden merken, dass deine Website ins Hintertreffen gerät – daher ist eine erstklassige, schnell laufende Datenbank entscheidend für den Erfolg.

Es gibt viele Möglichkeiten, dies zu erreichen, aber eine Kombination aus manuellen Techniken, Plugins und Kinstas eigenen Optimierungstools bringt dir die größten Vorteile. In vielen Fällen kann dir die Automatisierung dabei helfen, viele dieser Aufgaben zu erledigen, ohne dass du dich anmelden oder ein bestimmtes Tool selbst ausführen musst.

Wir würden uns freuen zu erfahren, ob unsere Tipps zur Optimierung der WordPress-Datenbank bei dir funktioniert haben. Lass uns in den Kommentaren unten wissen, welcher Tipp den größten Effekt hatte!

Jeremy Holcombe Kinsta

Content & Marketing Editor bei Kinsta, WordPress Web Developer und Content Writer. Außerhalb von WordPress genieße ich den Strand, Golf und Filme. Außerdem habe ich Probleme mit großen Menschen ;).