通过PHP的mysql连接瓶颈

omg*_*omg -1 php mysql connection

目前我们正在$ _SESSION中恢复MySQL连接,以节省往返时间以建立与MySQL的连接,

但问题是连接数快速超过限制,

那你们家伙的解决方案是什么?

您是否每次都创建一个新连接,并在使用后关闭该连接,或者像我一样,恢复它?

DMI*_*DMI 8

DGM的注释之后,resource类型(如MySQL连接引用)不会通过会话恢复.$_SESSION使用serialize()会话ID 序列化内容并与会话ID一起存储,以便在再次启动会话时进行恢复.

序列化状态的文档:

string serialize( mixed $value )

value - 要序列化的值.serialize()处理除类型以外的所有类型resource.

这意味着您实际上正在重新连接每个请求.mysql_pconnect()按照noselasd的建议使用可能会缓解这个问题.请务必注意其手册页上的注释,特别是这需要PHP作为模块运行.


DGM*_*DGM 6

在会话中存储连接应该不起作用.不要那样做.如果它在后续访问中实际重用该连接,我会感到惊讶,因为它涉及网络访问,并且您无法在网络中存储网络连接!充其量,它重新连接到下一页面视图,这对你没有任何好处.在最坏的情况下,对于每个保持打开且未正确关闭的请求,您都有一个单独的连接.

编辑 - 更多的想法

此外,在优化的名义,为什么甚至打扰?您是否真的对您的代码进行了分析并发现这是真正的瓶颈?只需以最简单明了的方式编写代码,然后在发现已测量的真实问题时担心优化问题.除非您有一个非常大的站点,否则数据库连接不是任何瓶颈的来源.