关于php pdo连接mysql,查询超时问题

博客讨论了在PHP项目中使用PDO连接MySQL时遇到的查询超时问题。作者尝试了PDO的ATTR_TIMEOUT参数和mysqlnd.net_read_timeout配置,但效果不佳。由于需求的特殊性,全局设置超时并不适用。文章提到了转向mysqli和使用curl超时作为替代方案,但最终解决方案是利用MySQL的异步模式来实现查询计时并手动断开连接。
摘要由CSDN通过智能技术生成

很少写博客,格式不好,见谅。

首先问题是这样发现的,

我在php项目使用到了 workerman,这是一个 常驻内存的cli模式下的socket开发包。(非常给力!)

然后有时候task进程或无故卡死,并不报错,然后就是整个服务瘫痪。

最后发现是通过PDO链接MYSQL进行查询的时候,不知道怎么的,反正就是不报错,又阻塞了!(反正是数据库的锅,因为太不稳定了)

于是就想实现query timeout。

之后查阅了很多文档,自己也做过很多测试。

PDO有个参数ATTR_TIMEOUT:

PDO::ATTR_TIMEOUT: Specifies the timeout duration in seconds. Not all drivers support this option, and its meaning may differ from driver to driver. For example, sqlite will wait for up to this time value before giving up on obtaining an writable lock, but other drivers may interpret this as a connect or a read timeout interval.

尝试了该参数,发现在win和linux上都无效。大家可以再试试 给我反馈哈。

之后就是mysqlnd扩展参数了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值