Hasil Cache selepas MySQL Insert and Delete
Dalam apl web Python/WSGI, sesi disimpan dalam jadual InnoDB dalam MySQL tempatan pangkalan data. Selepas pengesahan, sesi lama dipadamkan, sesi baharu dibuat dan transaksi komited untuk mencipta ID sesi baharu untuk kuki. Walau bagaimanapun, kadangkala sesi yang baru dibuat tidak ditemui dalam pangkalan data selepas ubah hala.
Memahami Isu
MySQL menggunakan tahap pengasingan lalai "REPEATABLE READ," bermaksud urus niaga tidak akan melihat sebarang perubahan yang dibuat selepas transaksi dimulakan. Walaupun perubahan itu dilakukan, ia tetap tidak kelihatan.
Penyelesaian
Untuk menyelesaikannya, terdapat dua pilihan:
Tamatkan Transaksi:
Tukar Tahap Pengasingan:
Pertimbangan Tambahan
Semak manual MySQL untuk pilihan untuk mengubah suai tahap pengasingan lalai. Ini akan membolehkan semua sesi menggunakan tahap pengasingan pilihan secara automatik.
Atas ialah kandungan terperinci Mengapa Sesi MySQL Saya yang Baru Dicipta Tidak Kelihatan Serta-merta Selepas Transaksi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!