为什么我新创建的 MySQL 会话在事务后没有立即可见?

DDD
发布: 2024-11-23 22:49:11
原创
897 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板