Rumah  >  Artikel  >  pangkalan data  >  Mengapa Sesi MySQL Saya yang Baru Dicipta Tidak Kelihatan Serta-merta Selepas Transaksi?

Mengapa Sesi MySQL Saya yang Baru Dicipta Tidak Kelihatan Serta-merta Selepas Transaksi?

DDD
DDDasal
2024-11-23 22:49:11901semak imbas

Why Are My Newly Created MySQL Sessions Not Immediately Visible After a Transaction?

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:

  1. Tamatkan Transaksi:

    • Keluarkan COMMIT atau ROLLBACK dalam sesi di mana hasil cache muncul. Ini akan menamatkan urus niaga dan membolehkan perubahan komited kelihatan.
  2. Tukar Tahap Pengasingan:

    • Tukar tahap pengasingan untuk sesi "MEMBACA KOMITED." Ini akan memastikan bahawa perubahan yang dibuat oleh transaksi lain dapat dilihat selepas ia dilakukan.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn