Caching-Problem in der MySQL-Datenbank: Abrufen veralteter Daten nach dem Löschen und Einfügen
In Python-Webanwendungen ist die Verwaltung von Benutzersitzungen eine entscheidende Aufgabe. Bei bestimmten Implementierungen, die MySQL-Verbindungen verwenden, tritt jedoch ein Problem auf, bei dem trotz des Löschens alter Sitzungen und des Erstellens neuer Sitzungen einige Verbindungen bei nachfolgenden Datenbankauswahlen veraltete Daten abrufen. Dies führt zu Fehlern bei der Sitzungsvalidierung und dazu, dass sich Benutzer erneut anmelden müssen.
Grundursache
Die Grundursache für dieses Problem liegt in der Standardisolationsstufe von MySQL: „ WIEDERHOLBARES LESEN.“ Mit dieser Einstellung werden Verbindungen innerhalb einer Transaktion von Änderungen isoliert, die von anderen Verbindungen nach dem Start der Transaktion vorgenommen wurden, unabhängig davon, ob diese Änderungen festgeschrieben wurden.
Lösung
An Um dieses Problem zu lösen, gibt es zwei Hauptansätze:
Beenden Sie die Transaktion:
Ändern Sie die Isolationsstufe:
Das obige ist der detaillierte Inhalt vonWarum erhält meine Python-Webanwendung trotz Löschen und Einfügen veraltete Sitzungsdaten von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!