gpt4 book ai didi

php - PHP 脚本速度慢导致 MySQL 服务器休眠(使用 pconnect())

转载 作者:行者123 更新时间:2023-11-29 14:47:00 25 4
gpt4 key购买 nike

我在 MySQL 进入休眠状态时遇到问题,因为 PHP 脚本花费的时间太长..然后 mysql 服务器没有响应,直到完成该 sleep 过程。然后需要一分钟时间来执行任何类型的数据库请求(如果删除 SLEEP 进程,速度会更快)。

我使用 pconnect() 连接到服务器,有人告诉我这可能会导致问题。是这样吗?如果是这样,为什么持久连接会像这样停止工作?

最佳答案

如果连接的前一个用户异常中止,持久连接可能会留下“垃圾”。考虑这样的情况:您正在通过一系列单独的查询进行事务处理。中途,我们假设远程用户终止了连接,这导致脚本中止。因为mysql连接是持久的,所以当脚本退出时它不会关闭,并且保持事务打开。

MySQL 无法知道它应该执行回滚,因此它会等待正在进行的事务,等待另一个查询的到来。

当另一个脚本重新使用此连接时,该脚本也无法知道事务正在进行中,而只会开始发出自己的查询。

这很容易导致死锁,因为所有这些“陈旧”事务都被部分完成。如果您的脚本由于某种原因更改了任何服务器端设置,这些设置也将在每个连接的基础上保留,等等...

换句话说,除非您对代码非常小心,否则持久连接将导致一系列难以诊断的奇怪行为,因为对于使用它们的每个脚本,每个连接都将处于不同的状态。

关于php - PHP 脚本速度慢导致 MySQL 服务器休眠(使用 pconnect()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6753304/

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