Kann ich Transienten in der wp_options-Tabelle meiner WordPress-Installation entfernen?

Lesezeit: 4 Minuten

Kann ich Transienten in der wp options Tabelle meiner WordPress Installation entfernen
Ryan

Ich habe vor kurzem festgestellt, dass meine wp_options Tisch scheint etwas groß zu sein. Es enthält 1161 Zeilen und ist etwa 2,1 MB groß.

ich habe installiert Optionen bereinigen. Es sieht so aus, als ob die Entwicklung des Plugins im Jahr 2010 gestoppt wurde, aber es hat immer noch funktioniert.

Ich habe jetzt eine lange Liste potenziell verwaister Einträge. Gibt es eine einfache Möglichkeit, diese zu sortieren und herauszufinden, welche zu entfernen und welche zu behalten sind? Könnte dies auch für Leistungsprobleme mit der Website verantwortlich sein?

Vielen Dank fürs Lesen, Ideen sind willkommen!

Aktualisieren: Das Plugin Clean Options hat einige Transienten in der Liste zurückgegeben, was mich zu der Feststellung veranlasste, dass sich mehrere hundert transiente Dateien in der befinden wp_options Tisch. Es gibt eine ganze Reihe, die so aussehen:

  • _site_transient_browser_5728a0f1503de54634b3716638...
  • _site_transient_timeout_browser_03df11ec4fda7630a5...
  • _transient_feed_83dcaee0f69f63186d51bf9a4...
  • _transient_plugin_slugs
  • _transient_timeout_feed_83dcaee0f69f63186d51bf9a4b...

und so weiter. Wie gesagt, es gibt mehrere hundert Zeilen, die so aussehen. Ist es sicher, sie einfach zu entsorgen?

Danke

  • Vielleicht können wir eine (Tabellen-)Liste mit schlechten Plugins erstellen, um diese Frage anzuhängen? Plugins, von denen bekannt ist, dass sie wp_options überfluten. Das erste für die Liste, das „Flare“-Plugin, das Social-Media-Sharing-Symbole hinzufügt. Die Einträge sehen so aus “_transient_flare” Gerade wurden 353611 Zeilen (1 Gig) dieses Mülls aus einem Blog gelöscht, der den InnoDB-Cache gefüllt hatte.

    – PJ Brunet

    1. Dezember 2015 um 1:29 Uhr


Kann ich Transienten in der wp options Tabelle meiner WordPress Installation entfernen
Fahrbahn

Sie können sie sicher entsorgen. WordPress und einige Plugins erstellen Transienten nach Bedarf neu. Ein Transient ist mehr oder weniger der gespeicherte Wert einer komplexen Abfrage. Die Ergebnisse werden als Transient gespeichert, sodass das System nicht immer wieder eine allgemeine Abfrage durchführen muss, sondern nur nach dem Transient sucht, wenn er existiert und nicht abgelaufen ist. Erstellen Sie natürlich eine Sicherungskopie Ihrer Datenbank, bevor Sie eine Änderung vornehmen, damit nichts schief geht!

Nachdem Sie alles gesichert haben, können Sie eine MySQL-Anweisung wie diese ausführen:

DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%')

[EDIT: statement fixed with escape characters, after comment suggestion]

  • '%\_transient\_%'. Vergiss das nicht _ ist ein einzelnes Zeichen Platzhalter.

    – ITS Alaska

    31. Mai 2013 um 20:46 Uhr

  • Ich fügte hinzu AND option_value < {$time}; um sicherzustellen, dass ich alte Transienten gelöscht habe.

    – Mohit

    30. April 2016 um 10:55 Uhr

  • sollte $wpdb->prefix und nicht wp_ verwenden, damit es auf jeder WordPress-Datenbank funktioniert … oder sogar $wpdb->options und das Ganze ersetzen

    – Andreas Killen

    20. Juli 2016 um 9:38 Uhr


1646183348 222 Kann ich Transienten in der wp options Tabelle meiner WordPress Installation entfernen
ClearCrescendo

Sie können Transienten löschen, da sie neu erstellt werden. Aufgrund von Fehlersituationen oder Designproblemen mit einigen Plugins kann es zu Anhäufungen von abgelaufenen Transienten kommen. Eine Möglichkeit, dies zu bewältigen, besteht darin, abgelaufene Transienten zu entfernen, während aktuelle Transienten ihre Funktion erfüllen können. Wenn Sie nur Transienten löschen, die einige Tage abgelaufen sind, können Sie überwachen, welche Plugins zu veralteten Transienten führen, und Maßnahmen ergreifen, um Probleme zu beheben oder Probleme zu melden.

Das Folgende findet alle wp*option-Tabellen in der Datenbank und löscht die fünf größten transienten Optionen, die mehr als eine Woche veraltet sind. Dies gibt jedem Plugin lange genug, um Optionen zu löschen, die es selbst bereinigen wird.

#!/bin/bash

DBNAME="mydatabase"
DBUSER="${USER}"
DBPASSWD="secret"
MYSQLBIN=/usr/bin/mysql # OR MYSQLBIN=/usr/local/mysql/bin/mysql
MYSQL="${MYSQLBIN} -s -D ${DBNAME} -u ${DBUSER} -p${DBPASSWD}"
TMP=/var/tmp/
ENTRIES_FILE="${TMP}entries.$$"

# Find option tables
for OPTION_TABLE in $( echo 'show tables like "%wp%options";' | ${MYSQL} )
do
    # Find up to five large long expired transients
    ${MYSQL} > ${ENTRIES_FILE} <<EOF
    select option_name from ${OPTION_TABLE} where option_name in
        (select concat("_transient",substr(option_name,19))
            FROM ${OPTION_TABLE} WHERE option_name LIKE '_transient_timeout%' AND
            option_value < UTC_TIMESTAMP() - INTERVAL 1 WEEK order by option_value)
    order by length(option_value) desc limit 5;
EOF
    for OPTION in $( < ${ENTRIES_FILE} )
    do
        echo Deleting ${OPTION} from ${OPTION_TABLE}
        echo delete from ${OPTION_TABLE} where option_name = \"${OPTION}\"\; | ${MYSQL}
        if [[ $? -eq 0 ]]; then
            echo delete from ${OPTION_TABLE} where option_name = \"_transient_timeout${OPTION:10}\"\; | ${MYSQL}
        fi
    done
done
rm -f ${ENTRIES_FILE}

Installieren Sie das Plugin Abgelaufene Transienten löschen um die Datenbank täglich automatisch zu bereinigen.

906770cookie-checkKann ich Transienten in der wp_options-Tabelle meiner WordPress-Installation entfernen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy