gpt4 book ai didi

php - MySQL 主/从、异步查询和意外表锁定?

转载 作者:行者123 更新时间:2023-11-29 19:22:06 24 4
gpt4 key购买 nike

我只是在 mysql master/salve 环境中遇到一些关于 SELECT 查询和表锁定(?)的奇怪问题。

我确实有 1 个主人和 2 个奴隶。我所有的表都是innoDB(其中一些曾经是MyISAM)。我使用 php 和 mysqli 来并行地从两个从属设备进行异步查询。

问题是,在处理我的并行查询期间,所有其他 MySQL 相关任务都被搁置,即使我尝试从根本没有任务的 master 中进行选择,直到由于某些原因完成所有查询。

我怀疑是因为表锁定???我确实尝试过“ISOLATION LEVEL READ UNCOMMITTED”并将所有表更改为 innoDB 但仍然没有运气。我不知道在哪里诊断了

更新#1:刚刚发现更多线索。在从站的密集选择期间,从 PHP 到主站的新连接将被保留/卡住,直到对从站的选择查询完成。

更新#2:发现更多线索。只需将所有剩余的 mysql 连接更改为 mysqli 即可。它有效!...但在某些不使用 session_start() 的页面上。为什么要使用 session_start() ? session_start() 如何保持我与数据库的连接?

更新#3:找到了解决方案。我会在下面发帖

最佳答案

找到解决方案

总共有 2 个问题。

  1. 我仍然有正常的 mysql 连接/查询与 mysqli 共存。只需将其全部更改为 mysqli 即可。我不知道什么或为什么它不能一起工作。但是将其全部更改为 mysqli 可以在某些时候解决我的问题。

  2. 我刚刚了解到 PHP 的 session 也可以被锁定。如果您的页面需要大量时间来计算/处理。不要忘记使用 session_write_close() 来防止 PHP 中的 session 锁定。

关于php - MySQL 主/从、异步查询和意外表锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42377894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com