Maison >base de données >tutoriel mysql >Pourquoi mon application MySQL continue-t-elle d'afficher « L'instruction préparée doit être re-préparée » ?

Pourquoi mon application MySQL continue-t-elle d'afficher « L'instruction préparée doit être re-préparée » ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-03 22:07:12367parcourir

Why Does My MySQL Application Keep Showing

MySQL rencontre l'erreur « L'instruction préparée doit être re-préparée »

Problème :
Lors de la migration un site Web basé sur PHP avec des procédures stockées MySQL vers un serveur d'hébergement, les utilisateurs rencontrent des erreurs fatales répétées indiquant "Une instruction préparée doit à re-préparer." Ce problème se manifeste de manière incohérente, entraînant une alternance de chargements de pages réussis et échoués.

Réponse :

La cause sous-jacente est un bug MySQL connu (#42041) lié au table_definition_cache paramètre. MySQL recommande d'augmenter la valeur de ce paramètre pour résoudre le problème.

Solution :

  1. Ajustez le fichier de configuration MySQL (par exemple, my.cnf).
  2. Localisez le paramètre table_definition_cache et augmentez sa valeur.
  3. Redémarrez le service MySQL pour que les modifications prennent effet.

Comprendre la mise en cache des instructions :
MySQL utilise la mise en cache des instructions pour améliorer les performances en stockant les instructions précédemment exécutées en mémoire. Lorsqu'une instruction similaire est rencontrée, la version mise en cache est récupérée, réduisant ainsi la surcharge de réanalyse et de compilation. En augmentant la valeur de table_definition_cache, MySQL peut mettre en cache davantage de définitions de table, améliorant ainsi la probabilité de réutilisation des instructions mises en cache et atténuant l'erreur « L'instruction préparée doit être re-préparée ».

Ressources supplémentaires :

  • [Documentation MySQL sur la déclaration Mise en cache](https://dev.mysql.com/doc/refman/8.0/en/statement-caching.html)
  • [Bogue MySQL n°42041](https://bugs.mysql.com/ bug.php?id=42041)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn