【发布时间】:2014-05-30 14:17:29
【问题描述】:
我想知道的是 PDO 的基本连接行为。我将从问题开始。在工作中,我们与 MySQL 数据库有很多 CONNECTED 连接,现在我认为只要 PDO 对象被破坏(未设置或设置为 null),连接就会关闭,但这些连接似乎保持打开状态。在 MySQL“显示完整进程列表”中,似乎有超过 100 个连接处于“命令”睡眠状态。我正在尝试解决这是否是因为“interactive_timeout”默认设置为 28800(不确定是秒还是毫秒)http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_interactive_timeout,或者我可以对 PDO 做些什么,比如在session 而不是调用存储在包含文件中的变量中的相同实例。
任何帮助将不胜感激。
【问题讨论】:
-
将 pdo 对象序列化到会话中是没有意义的。与其他数据库相比,mysql 的连接协议非常快。通过整个序列化/反序列化序列可能比首先开始一个新连接更昂贵。同样,当您序列化时,您仍然会丢失任何正在进行的交易,因为它仍然会切断连接。
-
看起来你喜欢在工作中使用持久连接
-
速度没有问题,根据mysql“完整进程列表”,持续打开的连接处于睡眠状态
标签: php mysql database pdo connection