2010-06-08 52 views

回答

3

如果不调用它,那么在等待状态下,与数据库的套接字连接将保持打开约30秒。

如果你得到很多很多人,并且你不能以某种方式重新使用这些僵尸连接,那么你的数据库可能会爆炸,导致用户错误太多。

因此,在回答你的问题:语法不要求,但它是非常差的做法不包括他们。

+0

在nico的回答中查看我的留言。 – Artefacto 2010-06-08 12:20:52

+0

你确定数据库会爆炸吗?我希望应用程序不能建立新的连接,但数据库可以在所有打开的连接通过〜30秒后保持运行并可用。 – Unreason 2010-06-09 10:00:38

+0

@不理由:这很可能,是的。但最终的结果在重负载下是一样的:网站停机时间。 – Oli 2010-06-09 12:30:10

1

您不明确释放资源,但依靠服务器端的超时和应用程序端的内部管理。

1

PHP将在执行结束时关闭任何打开的连接。所以,如果你不这样做,什么都不会发生。

http://www.php.net/manual/en/function.mysql-close.php

使用mysql_close()通常是不必要的,因为非持久打开链接在脚本执行结束时自动关闭。

+0

这取决于PHP的垃圾收集器检测到一个可用的资源和整理。你不能保证什么时候清理会发生,而且我已经看到系统花费太长时间。为了平衡,我也看到系统发生在哪里 - 执行结束的瞬间......但为什么要冒这个风险? – Oli 2010-06-08 11:58:14

+0

@Oli它没有。除非您使用持续连接,否则请求关闭时连接将消失。例如,如果引用连接的所有变量未设置或超出范围,它甚至可能会更早。 5.3中引入的垃圾收集器的目的是清理具有循环引用的资源。如果您看到不同的行为,请提交错误报告。 – Artefacto 2010-06-08 12:19:28

4

为什么不在PHP参考手册中阅读它?所有的信息是有...

但简而言之:不,他们是没有必要的,但恕我直言,最好给自己接近自由的连接当你不再需要它们时,资源将尽快消失。

+0

+1不需要,但一个好主意,如果脚本运行时间更长/尽快释放资源。 – Wrikken 2010-06-08 14:05:33