Technische Optimierung

WordPress-Datenbankoptimierung: MySQL-Tricks jenseits von Plugins

WordPress-Datenbankoptimierung in phpMyAdmin

Warum Datenbankoptimierung wichtig ist

Eine langsame WordPress-Website wird nicht immer durch große Bilder oder schwaches Hosting verursacht. Häufig liegt der eigentliche Flaschenhals in der MySQL-Datenbank. Mit zunehmender Größe von WordPress sammeln sich unnötige Daten an, wie z. B. veraltete Metadaten, abgelaufene temporäre Daten, ungenutzte Optionen gelöschter Plugins, verwaiste Postmeta-Einträge und Tausende von Cronjobs, die nie ordnungsgemäß ausgeführt werden.

Die meisten Benutzer versuchen, das Problem mit Datenbank-Plugins zu beheben. Diese Tools eignen sich zwar für grundlegende Bereinigungen, können aber tieferliegende strukturelle Probleme wie aufgeblähte automatisch geladene Daten oder ineffiziente Indizes nicht lösen. Die manuelle MySQL-Optimierung gibt Ihnen die volle Kontrolle und ermöglicht Leistungssteigerungen, die mit Plugins nicht zu erreichen sind.

Die Datenbankoptimierung wirkt sich auf die TTFB (Time-to-Bound), die Backend-Geschwindigkeit, die WooCommerce-Performance, die CPU-Auslastung und die Gesamtserverlast aus. Durch gezielte manuelle Optimierung wird Ihre Website schneller, stabiler und deutlich skalierbarer.

Wenn Sie Datenbankoptimierung mit Leistungsverbesserungen für den gesamten Stack kombinieren möchten, schauen Sie sich unsere WordPress-Geschwindigkeitsoptimierungsdienst.

Die wichtigsten WordPress-Tabellen verstehen

Um die Datenbank effektiv zu optimieren, müssen Sie verstehen, welche Funktion jede Tabelle hat und warum sie aufgebläht werden kann.

wp_options
Speichert globale WordPress-Einstellungen, Plugin-Konfigurationen und zwischengespeicherte Daten. Die wichtigste Spalte ist AutoloadDiese Tabelle wird bei jeder Seitenanforderung geladen. Enthält diese Tabelle unnötige, automatisch geladene Einträge in Megabyte-Menge, leidet Ihre TTFB (Time-to-Bound).

wp_postmeta
Enthält Metadaten für Beiträge, Seiten und WooCommerce-Produkte. Häufig werden hier ungenutzte oder verwaiste Daten aus gelöschten Beiträgen und Revisionen gespeichert.

wp_cron
Speichert das gesamte WordPress-System für geplante Aufgaben. Wenn Plugins wiederholt Ereignisse registrieren, kann diese Tabelle unübersichtlich werden.

Siehe auch  Wie ein kleiner Schalter in WoodMart Ihren WooCommerce-Shop zu einer Rakete machen kann: Meine Erfahrungen und Tipps für über 25.000 Produkte

Transienten
Temporär zwischengespeicherte Werte werden in wp_options gespeichert. Sie laufen oft ab, ohne automatisch entfernt zu werden.

Eine gut funktionierende Datenbank sorgt dafür, dass diese Tabellen klein, indiziert und frei von abgelaufenen oder verwaisten Inhalten sind.

1. Bereinigen von wp_options und Reduzieren der Autoload-Größe

Die Tabelle wp_options hat den größten Einfluss auf die Performance. Ziel ist es, die Menge der automatisch geladenen Daten auf unter 100 % zu reduzieren. 1 MB.

Überprüfen Sie den Gesamtzustand der Tabelle:

SELECT COUNT(*) AS total_rows,
ROUND(SUM(LENGTH(option_value)) / 1024 / 1024, 2) AS size_mb,
SUM(CASE WHEN autoload='yes' THEN 1 ELSE 0 END) AS autoloaded
FROM wp_options;

Finde die größten automatisch geladenen Einträge:

Überprüfung der Größe der automatisch geladenen Optionen mithilfe des Abfragemonitors
SELECT option_name, LENGTH(option_value)/1024 AS size_kb
FROM wp_options
WHERE autoload='yes'
ORDER BY size_kb DESC
LIMIT 30;

Man findet häufig Restdaten von ungenutzten Plugins, riesige Tracking-Protokolle oder WooCommerce-Sitzungsdaten, die eigentlich hätten ablaufen sollen, es aber nicht taten.

Unnötige Optionen entfernen:

DELETE FROM wp_options
WHERE option_name='old_plugin_cache_data';

Wurde ein Plugin fehlerhaft deinstalliert, bleiben möglicherweise viele ungenutzte Optionen erhalten. Durch die Reduzierung der automatisch geladenen Daten von 5–10 MB auf unter 1 MB lässt sich die Serverantwortzeit deutlich verbessern.

2. Bereinigen von wp_postmeta und Entfernen verwaister Metadaten

Die Tabelle wp_postmeta ist in der Regel die größte in jeder WordPress-Installation, insbesondere auf WooCommerce-Websites. Mit der Zeit sammelt sie Metadaten zu Beiträgen, die nicht mehr existieren.

Identifizieren verwaister Postmeta-Einträge:

SELECT COUNT(*)
FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL;

Löschen Sie sie sicher:

DELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.ID IS NULL;

Leere oder ungenutzte Metadaten entfernen:

DELETE FROM wp_postmeta
WHERE meta_value = '' OR meta_value IS NULL;

Nach der Bereinigung werden Abfragen, die Postmeta-Daten betreffen (insbesondere WooCommerce-Produktseiten), deutlich schneller.

Siehe auch  Wie ich das Woodmart-Theme superschnell gemacht habe – Meine Erfahrungen beim Bereinigen von xts_options und Autoload

3. Entfernen abgelaufener und ungenutzter Transienten

Transienten speichern temporäre, zwischengespeicherte Informationen für Plugins und Theme-Funktionen. WordPress sollte abgelaufene Transienten automatisch löschen, in der Praxis bleiben sie jedoch oft in der wp_options-Tabelle erhalten.

Entfernen Sie alle Transienten:

DELETE FROM wp_options
WHERE option_name LIKE '_transient_%'
OR option_name LIKE '_site_transient_%';

Nur abgelaufene Transienten entfernen:

DELETE FROM wp_options
WHERE option_name LIKE '_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();

Auf manchen Websites sammeln sich Zehntausende abgelaufene Besucherkonten an, was die Datenbankabfragen erheblich verlangsamt.

4. Bereinigung von wp_cron und Reduzierung der Überlastung durch geplante Aufgaben

Das interne wp-cron-System wird häufig durch doppelte oder hängende Aufgaben überlastet. Dies kann sowohl die Frontend-Performance als auch den WordPress-Adminbereich verlangsamen.

Cron-Größe prüfen:

SELECT LENGTH(option_value)/1024/1024 AS cron_size_mb
FROM wp_options
WHERE option_name='cron';

Wenn der Cron-Eintrag ungewöhnlich groß ist, setzen Sie ihn zurück:

DELETE FROM wp_options WHERE option_name='cron';

WordPress erstellt den Cron-Eintrag beim nächsten geplanten Ereignis automatisch neu.

Zur Verbesserung der Zuverlässigkeit deaktivieren Sie den integrierten Cronjob und verwenden Sie stattdessen einen systemeigenen Cronjob.

Fügen Sie Folgendes zu wp-config.php hinzu:

define('DISABLE_WP_CRON', true);

Richten Sie anschließend einen serverseitigen Cronjob ein, der Folgendes aufruft:

https://yourdomain.com/wp-cron.php?doing_wp_cron

Dadurch werden CPU-Spitzen reduziert und die Ablaufplanung wird vorhersehbarer.

5. Tabellen optimieren und nützliche Indizes hinzufügen

Nach der Datenbankbereinigung sollte die Optimierung der physischen Tabellen durchgeführt werden, um den Speicher zu defragmentieren und die Leistung zu verbessern:

OPTIMIZE TABLE wp_options, wp_posts, wp_postmeta, wp_comments, wp_commentmeta;

Bei großen Postmeta-Tabellen kann das Hinzufügen eines Index die Abfrageleistung erheblich steigern:

ALTER TABLE wp_postmeta ADD INDEX meta_key_idx (meta_key(191));

Dies ist besonders hilfreich bei der Verwendung von WooCommerce oder erweiterten benutzerdefinierten Feldern.

6. Automatisierung des Prozesses mit WP-CLI

Für Entwickler und Agenturen spart die Automatisierung stundenlange Wartungszeit.

Siehe auch  Intelligente WordPress-Datenbankoptimierung zur Beseitigung von Überlastung und Steigerung der Geschwindigkeit

Nützliche WP-CLI-Befehle:

wp transient delete --expired
wp db optimize
wp option delete old_plugin_data

Planen Sie diese Aufgaben über einen Cronjob, sodass sie wöchentlich oder monatlich zur kontinuierlichen Optimierung ausgeführt werden.

Fallstudie aus der Praxis: Optimierungsergebnisse von SpeedWP Pro

Ein WooCommerce-Kunde wandte sich mit gravierenden Leistungsproblemen an uns:

  • Datenbankgröße: 380 MB

  • Automatisch geladene Daten: 6,2 MB

  • TTFB: 700–900 ms

  • Das Admin-Dashboard ist extrem langsam.

Nach manueller Optimierung:

  • 140.000 abgelaufene Aufenthaltsgenehmigungen entfernt

  • Autoload von 6,2 MB auf 0,9 MB reduziert

  • 80.000 verwaiste Postmeta-Einträge gelöscht

  • Alle wichtigen Tabellen optimiert

Ergebnisse:

  • TTFB verbessert um 42%

  • Die Ladezeit des Administrators wurde reduziert von 3,8 Sekunden bis 1,6 Sekunden

  • Die CPU-Auslastung von MySQL sank um 351 TP3T.

  • Produktbearbeitungen in WooCommerce wurden deutlich beschleunigt

Dies zeigt, wie durch manuelles MySQL-Tuning Verbesserungen erzielt werden können, die mit Plugins nicht erreicht werden können.

Die Optimierung der WordPress-Datenbank geht weit über das einfache Klicken auf den Button „Datenbank bereinigen“ hinaus. Echte Leistungssteigerungen erzielt man, indem man versteht, wie MySQL Daten speichert, die Website-Verlangsamungsfaktoren identifiziert und diese sicher und strategisch entfernt.

Durch die Kontrolle automatisch geladener Daten, das Löschen verwaister Metadaten, die ordnungsgemäße Verwaltung von Cron-Aufgaben und die Nutzung von SQL-Optimierung stellen Sie sicher, dass Ihre WordPress-Installation schlank, schnell und skalierbar bleibt – auch wenn sie wächst.

Wenn Sie eine professionelle, auf Ihre Website zugeschnittene Datenbankprüfung wünschen, fordern Sie eine an Kostenlose Leistungsanalyse Hier:
https://speedwppro.com/free-audit