由于太多未关闭的mysql连接,我的客户端托管提供程序阻止了该站点.该网站以前是由某人创建的,目前我正在维护它.
我已mysql_close在页面末尾添加了该功能.它正在关闭连接良好,但我仍然得到一些未公开的连接.我可能会留下一些......
我需要的是使用cron文件或某些东西关闭服务器中未关闭的mysql连接.
我需要做什么?
是否可以立即关闭所有连接?如果是这样,怎么样?
你使用持久连接吗?如果没有,那么你真的不应该担心关闭你的连接.从手册
使用
mysql_close()通常是不必要的,因为非持久打开链接在脚本执行结束时自动关闭.另请参阅释放资源.
而不是太多的未闭合的连接,你有太多的开放连接,它不是(基本上是相同的)吗?例如,您网站上的用户数量太多了?
如果您确实有持久连接,请不要忘记:
mysql_close()不会关闭mysql_pconnect()创建的持久链接.
正如评论mysql_connect()中所述,在脚本结束时不太可能释放资源.从另一个手册页
释放资源
由于PHP 4的Zend引擎引入了引用计数系统,因此不会自动检测到没有更多引用的资源,并且它被垃圾收集器释放.因此,很少需要手动释放内存.
注意:持久性数据库链接是此规则的一个例外.它们不会被垃圾收集器破坏.有关更多信息,请参阅持久连接部分.
然而,从页面上的评论可能会有一个旁注mysql_close
至少在PHP5.3.2和Windows连接的情况下,你应该总是使用这个mysql_close()函数关闭并释放PHP使用的tcp套接字.脚本执行后的垃圾收集不会自行关闭tcp套接字.否则,套接字将保持"等待"状态大约30秒,并且任何其他页面加载/连接尝试只会增加打开的tcp连接的总数.此等待时间似乎不能通过PHP设置进行配置.
| 归档时间: |
|
| 查看次数: |
20374 次 |
| 最近记录: |