Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL主/从、异步查询和意外表锁定?_Php_Mysql_Mysqli_Master Slave - Fatal编程技术网

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

Php MySQL主/从、异步查询和意外表锁定?,php,mysql,mysqli,master-slave,Php,Mysql,Mysqli,Master Slave,我只是在mysql master/salve环境中面临一些关于选择查询和表锁定的奇怪问题 我有一个主人和两个奴隶。我所有的桌子都是innoDB,其中一些以前是MyISAM。我将php与mysqli结合使用,并行地从两个从属服务器进行异步查询 问题是,在处理并行查询的过程中,所有其他与MySQL相关的任务都处于暂停状态,甚至我尝试从根本没有任务的master中进行选择,直到出于某种原因完成所有查询 我怀疑是因为桌子锁了???我确实尝试过隔离级别readuncommitted,并将所有表都更改为in

我只是在mysql master/salve环境中面临一些关于选择查询和表锁定的奇怪问题

我有一个主人和两个奴隶。我所有的桌子都是innoDB,其中一些以前是MyISAM。我将php与mysqli结合使用,并行地从两个从属服务器进行异步查询

问题是,在处理并行查询的过程中,所有其他与MySQL相关的任务都处于暂停状态,甚至我尝试从根本没有任务的master中进行选择,直到出于某种原因完成所有查询

我怀疑是因为桌子锁了???我确实尝试过隔离级别readuncommitted,并将所有表都更改为innoDB,但仍然没有成功。我不知道该去哪里了

更新1:刚刚找到更多线索。在从机密集选择期间,从PHP到主机的新连接将保持/冻结,直到从机上的选择查询完成

更新2:发现更多线索。只需将所有剩余的mysql连接更改为mysqli即可。它起作用了!。。。但是在一些不使用session_start的页面上。为什么要启动会话??会话_如何启动以保持我与数据库的连接

更新3:找到了解决方案。我将在下面发布找到解决方案的帖子

共有两个问题

我仍然有正常的mysql连接/查询与mysqli共存。把它全部改成mysqli。我不知道什么或者为什么它不能一起工作。但是把它全部改成mysqli可以在某个时候解决我的问题

我刚刚了解到PHP的会话也可以被锁定。如果您的页面需要大量时间来计算/处理。不要忘记关闭session_write_,以防止PHP中的会话锁定