Résultats mis en cache après l'insertion et la suppression de MySQL
Dans une application Web Python/WSGI, les sessions sont stockées dans une table InnoDB dans un MySQL local base de données. Après l'authentification, les anciennes sessions sont supprimées, une nouvelle session est créée et la transaction est validée pour créer un nouvel ID de session pour le cookie. Cependant, il arrive parfois que la session nouvellement créée ne soit pas trouvée dans la base de données après une redirection.
Comprendre le problème
MySQL utilise le niveau d'isolement par défaut « REPEATABLE READ », ce qui signifie les transactions ne verront aucune modification apportée après le début de la transaction. Même si ces modifications ont été validées, elles restent invisibles.
Solution
Pour résoudre ce problème, il existe deux options :
Terminer la transaction :
Modifier le niveau d'isolement :
Considération supplémentaire
Consultez le manuel MySQL pour les options permettant de modifier le niveau d'isolement par défaut. Cela permettra à toutes les sessions d'utiliser automatiquement le niveau d'isolement préféré.
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!