Czy zepsuje moją witrynę, jeśli usunę wszystkie przejściowe rekordy w tabeli wp_options?


14

Moja witryna ma obecnie oburzające ponad 500 000 rekordów przejściowych w tabeli wp_options. Powoduje to częste awarie tabeli, podobnie jak moja witryna.

Myślałem, że przejściowe zapisy wygasną po pewnym czasie. Nie jestem pewien, które wtyczki są odpowiedzialne i co poszło nie tak. Nie chcę jednak, aby moja witryna często się tak zawieszała. Liczba rekordów w wp_optionstabeli gwałtownie wzrosła do 200 tys. + Kilka tygodni temu, a teraz do 500 tys. +.

Czy powinienem usunąć tylko te %transient_timeout%rekordy - w tej chwili ponad 200 000?

Każda pomoc byłaby bardzo mile widziana.

Aktualizacje 16 lipca 2012 r

W rzeczywistości zaryzykowałem (najpierw utworzyłem kopię zapasową witryny), usuwając wszystkie przejściowe rekordy, a baza danych mojej witryny nie uległa awarii od tego czasu :)

Jeszcze raz dziękuję wszystkim!

Odpowiedzi:




2

Oto prosta funkcja usuwania wszystkich stanów nieustalonych i przekroczeń limitu czasu - dodaj dodatkowe do własnych potrzeb.

    function clear_transients()
    {

        global $wpdb;

        // delete all "namespace" transients
        $sql = "
            DELETE 
            FROM {$wpdb->options}
            WHERE option_name like '\_transient\_namespace\_%'
            OR option_name like '\_transient\_timeout\_namespace\_%'
        ";

        $wpdb->query($sql);

    }

1

Stany przejściowe z reguły są danymi tymczasowymi. Więc jeśli osoba, która zakodowała wykorzystanie takich danych, zrobiła to poprawnie, powinieneś mieć się dobrze. Moja wiedza na ten temat jest jednak ograniczona i sam nie miałem z nimi dużego doświadczenia.

Najlepszym rozwiązaniem będzie na pewno utworzenie kopii zapasowej bazy danych, usunięcie danych, które nie są potrzebne, a następnie przetestowanie witryny. Jeśli Twoja działająca witryna jest intensywnie traffickowana, koniecznie przetestuj ją na lokalnej instancji, aby podczas testów nie miało to wpływu na nikogo.


1

Stany przejściowe są niczym innym, jak tymczasowymi opcjami, które są przechowywane w bazie danych przez określony czas, co oznacza, że ​​wygasają po zakończeniu ich celu.

Na przykład: stan _site_transient_update_pluginsprzejściowy. Zawiera informacje o wtyczkach, które mają dostępne aktualizacje. Jeśli usuniesz ten stan przejściowy, a następnie odświeżysz pulpit nawigacyjny, znajdziesz go z powrotem w bazie danych. Tak więc, nawet jeśli usuniesz stan przejściowy, WP go zregeneruje. Nie zepsuje twojej witryny, ale na pewno spowoduje nieoczekiwane rzeczy! Należy wykonać kopię zapasową bazy danych przed usunięciem tych wartości przejściowych.


0

Transjenty mają być tymczasowe, ale jeśli programista źle koduje, to po usunięciu wszystkich transjentów może być konieczne ponowne zapisanie ustawień kompozycji / wtyczki / widżetu, aby odtworzyć transjenty. W większości przypadków nie stanowi to problemu, a usunięcie wszystkich stanów przejściowych z witryny będzie w porządku.

Po usunięciu stanów nieustalonych Twój motyw i wtyczki będą musiały odbudować stan nieustalony, na którym polegają. Spowoduje to spadek wydajności natychmiast po usunięciu stanów nieustalonych, po czym witryna powinna działać nieco szybciej z niepotrzebnymi stanami przejściowymi, które mogły gromadzić się w bazie danych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.