参考我的另一个question和其他一些关于互联网的研究,我开始知道一个令人惊讶的面孔,大多数人建议如果你关闭连接并不重要,因为连接总是在请求后关闭.
但是我发现这些答案很难消化.原因是,为什么所有DB lib,ORM都提供close方法?如果它存在,在每个ORM / lib中,必须有一些很好的使用它.
有人可以说明在什么情况下,我们应该用close方法来关闭数据库连接? &安培;如果这些方法根本没用,为什么它们存在于所有db libs / ORM中?
编辑
我的结论
这是Bondye和Fluffeh之间的一次很好的讨论,它清除了我对使用连接关闭的疑虑.感谢他们两个.
>如果您的脚本预计持续时间不到100毫秒,请不要打扰关闭连接.
>但是:如果脚本预计会持续更长时间并且在最后一次DB操作和脚本关闭之间有一段时间,则通过调用* close()为其他人提供免费连接.
我真的很难接受一个答案,因为答案都是正确的.只需接受所有评论的答案,使其保持最佳状态.但是1对两个正确的答案.
释放资源
Thanks to the reference-counting system introduced with PHP 4’s Zend Engine,a resource with no more references to it is detected automatically,and it is freed by the garbage collector. For this reason,it is rarely necessary to free the memory manually.
希望这能帮到你更多.
(source)
编辑:
MysqL_close()的目的也是为了节省计算机资源,但使用它的另一个关键原因是MysqL服务器可以接受的连接数量有限,如果有几个客户端无缘无故地打开连接,那么服务器可能需要拒绝其他等待的客户端.当然这是一件坏事,因此,与MysqL_free_result()一样,如果您认为在上次使用数据库和脚本结束之间会有一段时间,最好调用MysqL_close().