【发布时间】:2010-11-24 00:15:36
【问题描述】:
有什么理由我应该在查询后或脚本结束时关闭连接?
做/不做有什么好处?
【问题讨论】:
-
如果您在谈论 PHP 脚本,我可以建议在您的问题中添加该标签吗?
有什么理由我应该在查询后或脚本结束时关闭连接?
做/不做有什么好处?
【问题讨论】:
连接(如果不是持久的)总是在脚本结束时关闭,所以理论上你不需要自己关闭。
不过,如果您的 PHP 脚本需要大量时间来执行,那么当您不再需要对数据库执行任何请求时关闭连接是一个好主意——至少,如果长时间计算是在之后完成的查询。
如果您的应用程序部署在共享主机上尤其如此:您的用户帐户通常只能同时打开几个连接。 (在共享主机上同时打开的连接数可能非常少;在私有服务器上通常更大)。
我们经常不自己关闭连接的原因是:
【讨论】:
这样做的好处是,如果您要进行长时间运行的处理,但已经完成了对数据库的查询,那么保持打开连接是没有意义的。保持用户会话打开(阻止其他请求)也是如此。
这方面的一个例子可能是创建一个大型 PDF 报告。这可能需要您 20-30 多秒来创建和写出文件,但您会在第一秒内获得所需的所有数据。
但通常您也可以自动执行(假设连接不是持久的)。
【讨论】:
mysqli(MYSQL_HOSTNAME, USERNAME, PASSWORD, DATABASE); 是持久的?