Gespeicherte Ergebnisse nach dem Einfügen und Löschen von MySQL
In einer Python/WSGI-Webanwendung werden Sitzungen in einer InnoDB-Tabelle in einem lokalen MySQL gespeichert Datenbank. Nach der Authentifizierung werden alte Sitzungen gelöscht, eine neue Sitzung erstellt und die Transaktion wird festgeschrieben, um eine neue Sitzungs-ID für das Cookie zu erstellen. Manchmal wird die neu erstellte Sitzung jedoch nach einer Umleitung nicht in der Datenbank gefunden.
Verstehen des Problems
MySQL verwendet die Standardisolationsstufe „REPEATABLE READ“, d. h Bei Transaktionen werden nach dem Start der Transaktion keine Änderungen vorgenommen. Selbst wenn diese Änderungen übernommen wurden, bleiben sie unsichtbar.
Lösung
Um dieses Problem zu beheben, gibt es zwei Möglichkeiten:
Beenden Sie die Transaktion:
Isolationsstufe ändern:
Zusätzliche Überlegungen
Schauen Sie sich das MySQL-Handbuch an für Optionen zum Ändern der Standardisolationsstufe. Dadurch können alle Sitzungen automatisch die bevorzugte Isolationsstufe verwenden.
Das obige ist der detaillierte Inhalt vonWarum sind meine neu erstellten MySQL-Sitzungen nach einer Transaktion nicht sofort sichtbar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!