Mon site contient actuellement un nombre scandaleux d'enregistrements transitoires de 500 000 $ dans la table wp_options. Cela provoque le crash de la table fréquemment et ainsi être mon site.
Je pensais que les enregistrements transitoires expireraient après un certain temps. Je ne sais pas quels plug-ins sont responsables et ce qui n'a pas encore fonctionné. Cependant, je ne veux pas que mon site plante fréquemment comme ça. Le nombre d'enregistrements dans la table wp_options
a considérablement augmenté pour atteindre plus de 200 000 $ il y a quelques semaines et plus de 500 000 maintenant.
Devrais-je uniquement supprimer les enregistrements %transient_timeout%
- plus de 200 000 $ pour le moment?
Toute aide serait grandement appréciée.
Mises à jour le 16 juillet 2012
J'ai effectivement pris des risques (j'ai d'abord sauvegardé mon site) en supprimant tous les enregistrements transitoires et la base de données de mon site ne s'est pas écrasée depuis :)
Merci encore à tous!
Ceci est un ensemble assez définitif de réponses sur les transitoires
J'ai utilisé:
DELETE FROM `wp_options` WHERE `option_name` LIKE ('%\_transient\_%');
nettoyer avec d'excellents résultats :)
Les transitoires ne sont rien d’autre que des options temporaires, conservées dans la base de données pendant un certain temps, signifient qu’elles expirent une fois leur fonction terminée.
Par exemple: Le _site_transient_update_plugins
transitoire. Il contient les informations sur les plugins pour lesquels des mises à jour sont disponibles. Si vous supprimez ce transitoire, puis actualisez votre tableau de bord, vous le retrouverez dans votre base de données. Ainsi, même si vous supprimez un transitoire, WP le régénérera. Cela ne cassera pas votre site, mais provoquera certainement des imprévus! Assurez-vous de sauvegarder votre base de données avant de supprimer l'une de ces valeurs transitoires.
Voici une fonction simple pour effacer tous les transitoires et les délais d'attente - ajoutez des éléments supplémentaires pour répondre à vos besoins.
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);
}
Les transitoires, en règle générale, sont des données temporaires. Donc, si la personne qui a codé l'utilisation de telles données l'a fait correctement, tout devrait bien se passer. Ma connaissance du sujet est limitée, cependant, et je n'ai pas beaucoup d'expérience avec eux.
Votre meilleur choix sera presque certainement de sauvegarder votre base de données, d'effacer les données dont vous pensez ne pas avoir besoin, puis de tester votre site. Si votre site actif est soumis à un trafic intense, veillez à effectuer des tests sur une instance locale afin que personne ne soit affecté lors des tests.
Les transitoires sont supposés être temporaires, mais si un développeur a mal codé, après avoir supprimé tous les transitoires, vous devrez peut-être réenregistrer les paramètres de thème/plug-in/widget pour les recréer. La plupart du temps, ce n’est pas un problème et vous pourrez supprimer tous les éléments transitoires du site.
Une fois les transitoires supprimés, votre thème et vos plugins devront reconstruire les transitoires sur lesquels ils s'appuient. Cela entraînera un impact négatif sur les performances immédiatement après la suppression des éléments transitoires, après quoi le site devrait s'exécuter un peu plus rapidement avec l'élimination des éléments transitoires inutiles qui pourraient s'être accumulés dans votre base de données.