PDO连接行为

我想知道的是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做的事情就像在会话中传递对象而不是调用存储在包含文件中的变量中的相同实例。</ p>

任何帮助将不胜感激 。</ p>
</ div>

展开原文

原文

What I would like to know is the underlying connection behaviour of a PDO. I will start with the problem. At work we are having a lot of CONNECTED connections to our MySQL database now I thought as long as the PDO object was destroyed(unset or set to null) the connection was closed but these connection seem to stay open. In the MySQL "show full processlist" there seem to be over 100 connections that are "Command" sleep. I'm trying to work out if this is because of the "interactive_timeout" default setting being 28800(not sure if thats seconds or miliseconds) http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_interactive_timeout or if there is something I can do to with PDO like pass the object around in a session instead of calling the same instance stored in a variable in an included file.

Any help will be greatly appreciated.

doushaiyu5065
doushaiyu5065 速度没有问题,根据mysql“完整进程列表”,它是Sleep的常开连接
6 年多之前 回复
dpvp56187
dpvp56187 看起来你喜欢在工作中使用持久连接
6 年多之前 回复
duanlujiaji10335
duanlujiaji10335 将pdo对象序列化到会话中没有意义。与其他db相比,mysql的连接协议非常快。通过整个序列化/反序列化序列可能比首先启动新连接更昂贵。同样,当你序列化时,你仍然会丢失任何正在进行的交易,因为它仍会切断连接。
6 年多之前 回复

1个回答



PDO连接绝对没什么特别之处。 它只是一个常规的套接字连接,在脚本启动时打开,在结束时关闭。 </ p>

您在工作中遇到的问题可能是由持久连接</ strong>问题引起的,但这不是PDO特有的,但可通过mysql为所有驱动程序提供 API。 无论脚本的生命周期如何,它都是保持连接打开的唯一目的。 但是,不要误解功能的性质:从脚本的角度来看,它始终是全新的连接。</ p>
</ div>

展开原文

原文

There is absolutely nothing special with PDO connections. It's just a regular socket connection, Opened with script start and closed at end.

The issue you are experiencing at work is probably caused by the persistent connect frature, which is not however specific for PDO, but available for all the drivers via mysql API. Its the only purpose to keep the connection opened, regardless of the lifetime of the script. However, one have not to be mistaken on the nature of the feature: from the script point of view it's always brand new connection.

douxian7808
douxian7808 是的,它需要。 然后你必须调查是什么让这些连接保持开放。
6 年多之前 回复
duanpao6163
duanpao6163 我们不使用持久连接,除非它们默认启用。 我认为这是一个需要在PDO中启用的选项
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐