Leistung und Monitoring
Die Tabelle wp_options und die „Autoload“-Daten optimieren
Die Tabelle wp_options speichert Optionen von WordPress, Plugins und Themes. Einige werden als Autoload gemeinsam geladen, um wiederholte Abfragen zu vermeiden. Wächst diese Menge zu stark, kann das den Aufwand für Lesen, Deserialisieren und Speicher erhöhen, auch wenn Sie einen Objekt-Cache verwenden.
Nicht jede Option wird zwingend einzeln oder bei jedem Zugriff auf den Server abgefragt: WordPress verwendet die Menge alloptions wieder, und ein Seiten-Cache kann die Ausführung von WordPress ganz vermeiden.
Messen, ohne Daten zu ändern
Prüfen Sie das Präfix Ihrer Installation. Die Beispiele verwenden wp_options; in einer Multisite müssen Sie die Website und ihre zugehörige Tabelle bestimmen. Berechnen Sie per SQL in phpMyAdmin Anzahl und Bytes:
SELECT COUNT(*) AS opciones, COALESCE(SUM(OCTET_LENGTH(option_value)), 0) AS bytes, ROUND(COALESCE(SUM(OCTET_LENGTH(option_value)), 0) / 1024, 2) AS kib FROM wp_options WHERE autoload IN ('yes', 'on', 'auto-on', 'auto');
Die Abfrage umfasst die Werte, die das aktuelle WordPress standardmäßig als automatisch geladen betrachtet. Eine Installation kann sie filtern; lesen Sie zur Funktion der Autoload-Werte nach und prüfen Sie das Verhalten Ihrer Version.
Der Website-Zustand kann warnen, wenn die Menge seinen Schwellenwert überschreitet, der von Version und Filtern abhängt. Es gibt keine universelle Größe, die sicher ein Problem bedeutet: Setzen Sie den Messwert in Beziehung zu tatsächlichem Speicher und tatsächlichen Zeiten.
Große Optionen finden
SELECT option_name, autoload, OCTET_LENGTH(option_value) AS bytes FROM wp_options WHERE autoload IN ('yes', 'on', 'auto-on', 'auto') ORDER BY OCTET_LENGTH(option_value) DESC LIMIT 20;
Beginnen Sie mit den Namen und Größen. Um Prioritäten zu setzen, müssen Sie nicht die vollständigen Werte exportieren; sie können Zugangsdaten oder Benutzerdaten enthalten.
Finden Sie das verantwortliche Plugin oder Theme, indem Sie den genauen Namen in seinem Code und seiner Dokumentation suchen. Deaktiviert heißt nicht aufgegeben: Seine Daten können beim erneuten Aktivieren nötig sein. Testen Sie eine Bereinigung oder eine Autoload-Änderung auf einem Klon und mit wiederherstellbarem Backup, über die WordPress-API oder das Werkzeug der Komponente.
Bearbeiten Sie keine serialisierten Werte und stellen Sie nicht massenhaft alle Optionen auf „kein Autoload“ um. Sie könnten Daten beschädigen oder ein gemeinsames Laden durch viele Einzelabfragen ersetzen.
Die ganze Tabelle prüfen
Wenn Autoload die Größe nicht erklärt, wiederholen Sie die Abfrage ohne den Filter:
SELECT option_name, autoload, OCTET_LENGTH(option_value) AS bytes FROM wp_options ORDER BY OCTET_LENGTH(option_value) DESC LIMIT 20;
Die Bytes der Werte umfassen nicht den gesamten Platz von Tabelle und Indizes. Die Zeilenzahlen, die ein Werkzeug für InnoDB anzeigt, können geschätzt sein; verwenden Sie COUNT(*), wenn Sie eine exakte Zahl brauchen, und berücksichtigen Sie dessen Kosten bei großen Tabellen.
Cron, Transients und Sitzungen
Wenn die Option cron wächst, prüfen Sie die geplanten Aufgaben und die Komponente, die sie hinzufügt. Löschen oder bearbeiten Sie nicht ihre serialisierte Struktur. Die Anleitung zu WP-Cron erklärt, wie Sie den Auslöser ändern, ohne notwendige Aufgaben anzuhalten.
Transients haben eine maximale Lebensdauer und können früher verschwinden. Je nach Konfiguration werden sie in Tabellen oder im persistenten Cache gespeichert; nicht alle werden genau bei Erreichen ihres Datums gelöscht. So prüfen Sie, ohne Werte anzuzeigen:
wp transient list --fields=name,expiration
Wenn Sie das Backup geprüft haben und die abgelaufenen löschen müssen, verwenden Sie wp transient delete --expired. Tauchen sie übermäßig wieder auf, korrigieren Sie die Komponente, die sie erzeugt.
Die Zeilen für Sitzungen hängen vom Plugin ab; es handelt sich nicht unbedingt um die normalen WordPress-Anmeldungen. Eine allgemeine Bereinigung anhand eines übereinstimmenden Namens kann Warenkörbe oder laufende Arbeit kosten. Verwenden Sie die Aufbewahrungsregeln und das Werkzeug der verantwortlichen Komponente.
Indizes und Redis
WordPress legt in seinen Tabellen bereits Indizes an. Bevor Sie einen weiteren hinzufügen, prüfen Sie die vorhandenen:
SHOW INDEX FROM wp_options;
Prüfen Sie den Plan der langsamen Abfrage mit EXPLAIN und testen Sie jeden Index auf einem Klon. Fügen Sie keinen zusammengesetzten Index hinzu, nur weil die Tabelle viel Platz belegt: Er kostet ebenfalls Platz und Arbeit bei jedem Schreibvorgang.
Der Objekt-Cache mit Redis kann wiederholte Lesevorgänge verringern, macht es aber nicht überflüssig, eine unverhältnismäßig große Menge an Optionen zu prüfen. Vergleichen Sie nach jeder Änderung Zeiten, Speicher, Konfiguration und Aufgaben, um sicherzustellen, dass die Verbesserung den Betrieb nicht verändert hat.
Das könnte Ihnen auch helfen
- Die Leistung der WordPress-Datenbank mit Index WP MySQL For Speed verbessern Bewerten Sie WordPress-Indizes mit Index WP MySQL For Speed, prüfen Sie die Änderungen vor dem Anwen...
- Langsame SQL-Abfragen vom Typ „SELECT SQL_CALC_FOUND_ROWS“ Diagnostizieren Sie langsame WordPress-Abfragen mit SQL_CALC_FOUND_ROWS, finden Sie ihren Ursprung u...
- SQL-Abfragen zum Bereinigen verwaister Daten in der WordPress-Datenbank Bereinigen Sie verwaiste Daten, Revisionen und Transients in WordPress mit geprüften Abfragen, wiede...
- So laden Sie das reCAPTCHA-Skript mit Contact Form 7 nur dort, wo es nötig ist Bewerten Sie die Kosten von reCAPTCHA in Contact Form 7 und begrenzen Sie das Laden erst, nachdem Si...
Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.