gpt4 book ai didi

php - PDO 会关闭持久连接吗?

转载 作者:行者123 更新时间:2023-11-28 23:17:41 25 4
gpt4 key购买 nike

我改用 PDO 持久连接。我遇到过这样的情况:MySQL(正确地)在它的一端关闭了一个连接(由于不活动)并且 PDO 没有接收到它,在它的缓存中保持连接可用,从那时起 - 任何尝试使用这个连接的结果失败了。

从我读到的内容来看,这种行为是“设计使然”的(在我看来,PDO 似乎不支持持久连接)。

无论哪种方式,我想知道 PDO 是否会曾经关闭其池中的连接。我知道它不检查连接的状态,但是否有任何类型的计时器或定期清理、可配置或硬编码?

最佳答案

人们不应该担心连接的持久性。

如果您正在构建网页——它应该在连接超时之前完成。

如果您有一个长时间运行的应用程序在很长一段时间内都没有接触数据库,那么请考虑重新安排代码或关闭并重新打开或发现它已关闭并重新打开。

请注意,连接可能因多种原因而关闭——许多与网络问题有关。因此,您的应用程序应该准备好从关闭的连接中恢复,无论它声称的“持久性”如何。

“连接池”在多个级别进行处理——在客户端库中,在“代理服务器”中,甚至在 MySQL 服务器中。它们的行为各不相同。

连接池并不是那么有用。实际上,我查明的每个性能问题都与[重新]建立连接所需的时间有关。

其他 RDBMS 供应商的连接时间非常慢,导致行业发明了连接池和持久连接。但是 MySQL 几乎不需要这样。

有几个超时可以触发关闭连接;你受 DBA/SE/云提供商的支配,他们被设置为什么值。

PDO 只是许多层中的一层,所以您的问题太狭窄了。我希望我提供了更广泛的答案。

关于php - PDO 会关闭持久连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43147010/

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