為什麼我新建立的 MySQL 會話在交易後沒有立即可見?

DDD
發布: 2024-11-23 22:49:11
原創
898 人瀏覽過

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

MySQL 插入和刪除後的快取結果

在Python/WSGI Web 應用程式中,會話儲存在本機MySQL 的InnoDB 表中資料庫.身份驗證後,舊會話將被刪除,新會話將被創建,並且交易將被提交來為 cookie 創建新的會話 ID。然而,有時重定向後在資料庫中找不到新建立的會話。

理解問題

MySQL 使用預設隔離等級“REPEATABLE READ”,這表示交易將不會看到交易開始後所做的任何變更。即使這些變更已提交,它們仍然不可見。

解決方案

要解決此問題,有兩個選項:

  1. 結束事務:

    • 在出現快取結果的會話中發出COMMIT 或ROLLBACK。這將結束交易並允許提交的更改可見。
  2. 更改隔離等級:

    • 更改會話的隔離等級為「READ COMMITTED」。這將確保其他事務所所做的更改在提交後可見。

其他注意事項

檢查 MySQL 手冊用於修改預設隔離等級的選項。這將允許所有會話自動使用首選隔離等級。

以上是為什麼我新建立的 MySQL 會話在交易後沒有立即可見?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板