La cancellazione di tutti i record transitori nella tabella wp_options danneggerà il mio sito?

10 mag 2012, 07:32:57
Visualizzazioni: 84.6K
Voti: 18

Il mio sito ha attualmente un numero esorbitante di oltre 500.000 record transitori nella tabella wp_options. Questo causa frequenti crash della tabella e di conseguenza del mio sito.

Pensavo che i record transitori scadessero tutti dopo un certo periodo. Non sono ancora sicuro di quali plugin siano responsabili e cosa sia andato storto. Tuttavia, non voglio che il mio sito continui a crashare così frequentemente. Il numero di record nella tabella wp_options è aumentato enormemente fino a oltre 200.000 alcune settimane fa e ora supera i 500.000.

Dovrei eliminare solo i record %transient_timeout% - che al momento sono più di 200.000?

Qualsiasi aiuto sarà molto apprezzato.

Aggiornamento del 16 luglio 2012

In realtà ho corso il rischio (ho fatto prima il backup del mio sito) eliminando tutti i record transitori e da allora il database del mio sito non è più crashato :)

Grazie ancora a tutti!

1
Commenti

Da WP 3.7: "Durante l'aggiornamento del database, elimina tutti i transient, indipendentemente dalla scadenza. (Questo probabilmente dovrebbe avvenire anche durante gli aggiornamenti automatici, ma lasciamo perdere questa parte per ora, dato che l'aggiornamento del database verrà eseguito su tutte le release principali al giorno d'oggi.)" Quindi sì, dovrebbe andare bene se fatto tutto in una volta, ma se aggiorni regolarmente il tuo WP, probabilmente non dovresti averne bisogno :-)

jave.web jave.web
10 feb 2022 00:21:53
Tutte le risposte alla domanda 6
2
16

Ho utilizzato:

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

per ripulire con ottimi risultati :)

(da qui https://stackoverflow.com/questions/10422574/can-i-remove-transients-in-the-wp-options-table-of-my-wordpress-install)

7 gen 2014 18:51:33
Commenti

nota che non ho chiesto come eliminare i record transient

ericn ericn
12 ott 2016 06:18:39

Grazie! Non ho dovuto cercare oltre. Soluzione semplice e chiara. Serve solo un aggiustamento in base al 'prefisso' del nome della tabella.

Mugé Mugé
25 set 2020 18:29:36
2

Questo è un insieme piuttosto definitivo di risposte riguardanti i transient

WPSE: I transient vengono sottoposti a garbage collection?

15 lug 2012 14:09:07
Commenti

Sì, grazie, in realtà mi riferivo anche a quel topic :)

ericn ericn
17 lug 2012 14:39:14

Sarebbe utile includere qui un riepilogo/conclusione dell'articolo linkato. Le risposte con solo link esterni non sono molto utili, specialmente se il link dovesse rompersi in futuro

Philipp Philipp
5 gen 2022 16:33:53
0

I transient, di norma, sono dati temporanei. Quindi, se la persona che ha codificato l'utilizzo di tali dati lo ha fatto correttamente, non dovresti avere problemi. Tuttavia, la mia conoscenza sull'argomento è limitata e non ho molta esperienza diretta con essi.

La soluzione migliore sarà quasi sicuramente quella di eseguire un backup del tuo database, eliminare i dati che ritieni non ti servano, e poi testare il tuo sito. Se il tuo sito live ha molto traffico, assicurati di eseguire i test su un'istanza locale per evitare che gli utenti vengano influenzati durante il testing.

10 mag 2012 08:39:59
0

I transient non sono altro che opzioni temporanee, che vengono mantenute nel database per un certo periodo, ovvero scadono una volta che il loro scopo è terminato.

Ad esempio: il transient _site_transient_update_plugins. Contiene le informazioni sui plugin che hanno aggiornamenti disponibili. Se elimini questo transient e poi aggiorni la dashboard, lo ritroverai nel tuo database. Quindi, anche se elimini un transient, WordPress lo rigenererà. Non romperà il tuo sito, ma causerà sicuramente comportamenti inaspettati! Assicurati di fare un backup del database prima di eliminare uno di questi valori transient.

10 mag 2012 08:44:46
0

Ecco una semplice funzione per cancellare tutti i transient e i timeout - aggiungi altro in base alle tue esigenze.

    function clear_transients()
    {

        global $wpdb;

        // elimina tutti i transient del "namespace"
        $sql = "
            DELETE 
            FROM {$wpdb->options}
            WHERE option_name like '\_transient\_namespace\_%'
            OR option_name like '\_transient\_timeout\_namespace\_%'
        ";

        $wpdb->query($sql);

    }
19 gen 2014 21:16:43
0

I transient dovrebbero essere temporanei, ma se uno sviluppatore ha codificato qualcosa in modo errato, dopo aver eliminato tutti i transient, potrebbe essere necessario ri-salvare le impostazioni del tema/plugin/widget per ricreare i transient. Nella maggior parte dei casi questo non è un problema e puoi tranquillamente eliminare tutti i transient dal sito.

Una volta eliminati i transient, il tuo tema e i tuoi plugin dovranno ricostruire i transient da cui dipendono. Ciò causerà un calo immediato delle prestazioni subito dopo la rimozione dei transient, dopodiché il sito dovrebbe funzionare leggermente più velocemente con i transient non necessari che potrebbero essersi accumulati nel database ora eliminati.

23 dic 2017 07:58:22