Jeder Seitenaufruf, jede Formularübermittlung, jede Plugin-Operation und jede Benutzersitzung in WordPress umfasst Datenbankabfragen. Im Laufe der Zeit sammelt die Datenbank Überflüssiges an: alte Beitragsrevisionen, abgelaufene Transienten, verwaiste Metadaten, Spam-Kommentare und ungenutzte Tabellen von deaktivierten Plugins. Dieser Ballast verlangsamt die Abfragen, erhöht die Backup-Größen und mindert die allgemeine Leistung der Seite. Dieser Leitfaden behandelt, wie man Datenbankballast identifiziert, sicher bereinigt und dessen Rückkehr verhindert.
Was WordPress in der Datenbank Speichert
Zu verstehen, was sich in Ihrer Datenbank befindet, hilft Ihnen zu erkennen, was sicher entfernt werden kann. Eine Standard-WordPress-Installation verwendet 12 Kern-Tabellen, und Plugins fügen bei Bedarf ihre eigenen Tabellen hinzu.
| Tabelle | Speichert | Häufige Quelle für Ballast |
|---|---|---|
| wp_posts | Beiträge, Seiten, Revisionen, Anhänge, benutzerdefinierte Beitragstypen | Beitragsrevisionen, Auto-Entwürfe |
| wp_postmeta | Metadaten für Beiträge (benutzerdefinierte Felder, Plugin-Daten) | Verwaiste Metadaten von gelöschten Beiträgen |
| wp_options | Website-Einstellungen, Plugin-Einstellungen, Transienten | Abgelaufene Transienten, alte Plugin-Einstellungen |
| wp_comments | Kommentare und Trackbacks | Spam-Kommentare, gelöschte Kommentare |
| wp_commentmeta | Metadaten für Kommentare | Akismet-Metadaten für gelöschte Kommentare |
| wp_usermeta | Benutzermetadaten | Sitzungstoken, Plugin-Benutzerdaten |
| wp_termmeta | Metadaten für Kategorien und Tags | Verwaiste Term-Metadaten |
Häufige Quellen für Datenbankballast
Beitragsrevisionen
WordPress speichert eine Revision jedes Mal, wenn Sie auf "Entwurf speichern" oder "Aktualisieren" bei einem Beitrag oder einer Seite klicken. Ein Beitrag, der 50 Mal bearbeitet wurde, hat 50 Revisionen in der wp_posts-Tabelle gespeichert, jede mit ihrem eigenen Satz von postmeta-Einträgen. Auf einer Seite mit Hunderten von Beiträgen können Revisionen Tausende von unnötigen Datenbankzeilen ausmachen.
Transienten
Transienten sind temporäre Daten, die in der wp_options-Tabelle von WordPress-Core und Plugins gespeichert werden. Sie haben Ablaufzeiten, aber WordPress löscht abgelaufene Transienten nicht automatisch. Sie sammeln sich im Laufe der Zeit an und können die Optionen-Tabelle erheblich vergrößern, insbesondere auf Seiten mit vielen Plugins.
Verwaiste Daten
Wenn Sie einen Beitrag löschen, können dessen Metadaten (wp_postmeta-Einträge) nicht gelöscht werden. Ähnlich kann das Löschen von Kommentaren, Benutzern oder Begriffen verwaiste Metadatenzeilen hinterlassen. Deaktivierte und gelöschte Plugins hinterlassen oft ihre Datenbanktabellen, die Speicherplatz verbrauchen und Ihre Datenbank unübersichtlich machen.
Spam- und Gelöschte Inhalte
Spam-Kommentare, gelöschte Beiträge und gelöschte Kommentare verbleiben in der Datenbank, bis sie manuell geleert werden. Seiten mit Akismet oder anderen Spam-Filtern können Tausende von Spam-Kommentaren ansammeln, die regelmäßig bereinigt werden müssen.
Auto-Entwürfe
WordPress erstellt Auto-Entwurf-Beiträge, wenn Sie im Beitrag-Editor auf "Neu hinzufügen" klicken, selbst wenn Sie nie veröffentlichen. Diese sammeln sich im Laufe der Zeit an und haben nach dem Ende der Bearbeitungssitzung keinen Zweck mehr.
Manuelle Datenbankbereinigung über SQL
Für diejenigen, die mit SQL vertraut sind, können Sie direkt über phpMyAdmin oder einen Datenbank-Client bereinigen. Sichern Sie immer Ihre Datenbank, bevor Sie Bereinigungsabfragen ausführen.
Beitragsrevisionen löschen
-- Alle Beitragsrevisionen löschen
DELETE FROM wp_posts WHERE post_type = 'revision';
-- Verwaiste postmeta löschen (Metadaten für gelöschte Beiträge)
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON pm.post_id = p.ID
WHERE p.ID IST NULL;
Transiente Bereinigen
-- Abgelaufene Transiente löschen
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();
-- Die transienten Daten für abgelaufene Transiente löschen
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_%'
AND option_name NOT LIKE '%_transient_timeout_%';
Spam und Gelöschte Kommentare Entfernen
-- Spam-Kommentare löschen
DELETE FROM wp_comments WHERE comment_approved = 'spam';
-- Gelöschte Kommentare löschen
DELETE FROM wp_comments WHERE comment_approved = 'trash';
-- Verwaiste Kommentar-Metadaten löschen
DELETE cm FROM wp_commentmeta cm
LEFT JOIN wp_comments c ON cm.comment_id = c.comment_ID
WHERE c.comment_ID IS NULL;
Plugin-basierte Datenbankbereinigung
Wenn Sie einen GUI-basierten Ansatz bevorzugen, gibt es mehrere Plugins, die die Datenbankoptimierung mit Planungsfunktionen übernehmen:
WP-Optimize
WP-Optimize ist ein kostenloses Plugin, das Revisionen, Entwürfe, Spam, Transiente und verwaiste Daten bereinigt. Es optimiert auch Datenbanktabellen und unterstützt geplante Bereinigungen. Die Pro-Version fügt Multisite-Unterstützung und erweiterte Planungsfunktionen hinzu.
WP Rocket Datenbankoptimierung
WP Rocket enthält einen Datenbank-Tab, der Revisionen, Auto-Entwürfe, gelöschte Beiträge, Spam-Kommentare, Transiente und Tabellenoptimierung behandelt. Da WP Rocket hauptsächlich ein Caching-Plugin ist, erhalten Sie die Datenbankbereinigung zusammen mit der Leistungsoptimierung in einem Tool.
Advanced Database Cleaner
Dieses Plugin geht tiefer, indem es Tabellen erkennt, die von deaktivierten Plugins und verwaisten Cron-Ereignissen zurückgelassen wurden. Es kategorisiert Tabellen als WordPress-Kern, von Plugins erstellt oder unbekannt, was Ihnen hilft, zu identifizieren, welche Tabellen sicher zu entfernen sind.
| Plugin | Kostenlose Version | Geplante Bereinigung | Tabellenerkennung |
|---|---|---|---|
| WP-Optimize | Ja | Ja | Basis |
| WP Rocket | Nein (nur Premium) | Ja | Nein |
| Advanced Database Cleaner | Ja | Nur Pro | Ja (detailliert) |
wp-config.php Optimierungen
Verhindern Sie Datenbankaufblähungen an der Quelle, indem Sie diese Konstanten in Ihre wp-config.php-Datei hinzufügen:
Begrenzung der Beitragsrevisionen
// Nur 5 Revisionen pro Beitrag behalten (empfohlen)
define( 'WP_POST_REVISIONS', 5 );
// Revisionen vollständig deaktivieren (nicht für die meisten Seiten empfohlen)
define( 'WP_POST_REVISIONS', false );
Die Einstellung von Revisionen auf 5 bietet genug Historie, um aus Fehlern zu lernen, während das unbegrenzte Wachstum von Revisionen verhindert wird. Für inhaltsreiche Seiten mit häufigen Bearbeitungen sind 10 Revisionen eine angemessene Alternative.
Automatisches Leeren des Papierkorbs
// Papierkorb alle 7 Tage leeren (Standard ist 30)
define( 'EMPTY_TRASH_DAYS', 7 );
// Papierkorb deaktivieren (Elemente werden sofort gelöscht - mit Vorsicht verwenden)
define( 'EMPTY_TRASH_DAYS', 0 );
Automatisches Speicherintervall
// Automatisches Speicherintervall auf 5 Minuten erhöhen (Standard ist 60 Sekunden)
define( 'AUTOSAVE_INTERVAL', 300 );
Datenbanktabellen optimieren
Führen Sie nach dem Löschen von Zeilen eine OPTIMIZE-Operation durch, um fragmentierten Speicher zurückzugewinnen:
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;
Planen Sie dies monatlich oder nach großen Bereinigungsoperationen. Die meisten Bereinigungs-Plugins enthalten die Tabellenoptimierung in ihren geplanten Aufgaben.
Automatische Bereinigung planen
Richten Sie automatisierte Zeitpläne ein: wöchentliche Bereinigung von Transienten und Spam, monatliche Entfernung von Revisionen und Tabellenoptimierung sowie vierteljährliche Überprüfungen von verwaisten Plugin-Tabellen. WP-Optimize und WP Rocket unterstützen beide die geplante Bereinigung. Konfigurieren Sie diese während der Nebenzeiten.
Datenbankgröße überwachen
Verfolgen Sie die Größe Ihrer Datenbank, um Aufblähungen frühzeitig zu erkennen. Führen Sie diese Abfrage aus, um die einzelnen Tabellengrößen zu sehen:
SELECT table_name AS 'Tabelle',
ROUND(data_length / 1024 / 1024, 2) AS 'Daten (MB)',
table_rows AS 'Zeilen'
FROM information_schema.tables
WHERE table_schema = 'your_database_name'
ORDER BY (data_length + index_length) DESC
LIMIT 20;
Wenn wp_options 5 MB überschreitet oder wp_postmeta über 100 MB wächst, ist es Zeit für eine Bereinigung. Diese Tabellen werden häufig abgefragt, sodass ihre Größe die Ladezeiten der Seiten direkt beeinflusst.
Für einen umfassenden Ansatz zur Leistungsoptimierung, der die Datenbankoptimierung zusammen mit Caching, Bildoptimierung und Serverkonfiguration umfasst, lesen Sie unseren Leitfaden zur Geschwindigkeitsoptimierung von WordPress. Für eine kontinuierliche Datenbankgesundheit im Rahmen Ihrer Wartungsroutine, siehe unseren Wartungsleitfaden für WordPress.
Für weitere Details siehe die offizielle Dokumentation: WordPress Datenbank API.
Häufig gestellte Fragen
Ist es sicher, Beitragsrevisionen aus der Datenbank zu löschen?
Ja, das Löschen von Beitragsrevisionen ist sicher und hat keinen Einfluss auf Ihre veröffentlichten Inhalte. Revisionen sind historische Schnappschüsse von Entwurfsänderungen. Sobald Ihre Inhalte abgeschlossen sind, haben Revisionen für die meisten Seiten keinen Zweck mehr. Sichern Sie jedoch immer Ihre Datenbank, bevor Sie eine Bereinigung durchführen.
Wird die Datenbankoptimierung die Geschwindigkeit meiner Seite merklich verbessern?
Die Verbesserung hängt davon ab, wie aufgebläht Ihre Datenbank ist. Seiten mit über 50.000 verwaisten Zeilen oder einer wp_options-Tabelle, die 10 MB überschreitet, werden merkliche Verbesserungen bei den Ladezeiten der Seiten und der Reaktionsfähigkeit des Admin-Dashboards feststellen. Kleinere Seiten können marginale Gewinne sehen. Die Datenbankoptimierung funktioniert zusammen mit Caching und anderen Leistungsmaßnahmen für eine kumulative Verbesserung.
Wie oft sollte ich meine WordPress-Datenbank optimieren?
Für aktive Seiten mit regelmäßigen Inhaltsaktualisierungen ist eine monatliche Optimierung eine gute Basis. Seiten mit hohem Verkehr, häufigen Kommentaren, WooCommerce-Transaktionen oder Formularübermittlungen können von wöchentlichen Bereinigungen von Transienten und Spam sowie monatlicher Tabellenoptimierung profitieren.
Können Datenbankbereinigungs-Plugins meine Seite beschädigen?
Renommierte Plugins wie WP-Optimize und WP Rocket sind so konzipiert, dass sie sicher sind. Sie zielen auf bekannte Aufblähungskategorien (Revisionen, Transienten, Spam) ab und berühren keine wesentlichen Daten. Das Risiko steigt, wenn spezifische Tabellen von Plugins manuell gelöscht werden. Wenn Sie sich nicht sicher sind, ob eine Tabelle benötigt wird, lassen Sie sie an Ort und Stelle und recherchieren Sie zuerst ihren Zweck.
Was ist der Unterschied zwischen OPTIMIZE TABLE und dem Löschen von Zeilen?
Das Löschen von Zeilen entfernt Daten aus der Tabelle. OPTIMIZE TABLE reorganisiert die physische Speicherung der Tabelle, nachdem Zeilen gelöscht wurden, und reclaimt Speicherplatz und defragmentiert die Datendatei. Denken Sie daran, dass das Löschen von Dateien (Entfernen von Zeilen) im Gegensatz zum Defragmentieren Ihrer Festplatte (Optimierung der Tabelle) steht.
Sollte ich InnoDB oder MyISAM für WordPress-Tabellen verwenden?
WordPress verwendet standardmäßig InnoDB seit Version 5.5, und es ist die empfohlene Speicher-Engine. InnoDB unterstützt Zeilenverriegelung (besser für gleichzeitige Benutzer), Transaktionen und Wiederherstellung nach einem Absturz. MyISAM ist schneller bei leseintensiven Operationen, bietet jedoch nicht diese Zuverlässigkeitsmerkmale. Wenn Sie MyISAM-Tabellen in Ihrer Datenbank finden, wird empfohlen, sie in InnoDB zu konvertieren.
Wie identifiziere ich Tabellen, die von deaktivierten Plugins hinterlassen wurden?
Das Plugin Advanced Database Cleaner kann nicht-kernige Tabellen erkennen und kategorisieren. Alternativ können Sie die SQL-Abfrage SHOW TABLES ausführen und die Tabellennamen mit den WordPress-Kern-Tabellen und Ihren derzeit aktiven Plugins vergleichen. Tabellen mit Präfixen, die mit deaktivierten Plugins übereinstimmen, sind Kandidaten für die Entfernung.
Fügt WooCommerce signifikante Datenbankaufblähung hinzu?
Ja. WooCommerce speichert Bestelldaten, Produktmetadaten, Kundensitzungen und Transienten, die in aktiven Shops erheblich wachsen. Verwenden Sie WooCommerce > Status > Werkzeuge, um abgelaufene Transienten und Sitzungen regelmäßig zu löschen.
Leistung aus jedem Blickwinkel optimieren
WP Rocket kümmert sich um Caching, Datenbankbereinigung und Leistungsoptimierung in einem Plugin, damit Ihre Seite reibungslos läuft.
WP Rocket erkunden →


