我一直认为关闭数据库连接总是一个好习惯,无论数据库/ORM如何,比如mysql_close()、Propel::close()等。
参考我的另一个问题和 Internet 上的其他一些研究,我了解到一张令人惊讶的面孔,大多数人建议关闭连接并不重要,因为连接总是在请求后关闭。
但是,我发现这些答案很难消化。原因是,为什么所有的 DB lib、ORM 都提供 close 方法?如果它在那里,在每个 ORM/lib中,都必须有一些很好的用途。
有人可以解释一下在什么情况下,我们应该使用 close 方法来关闭数据库连接?&如果这些方法根本没有用,为什么它们存在于所有 db libs/ORM 中?
编辑
我的结论
这是 Bondye 和 Fluffeh 之间的一次很好的讨论,它消除了我对使用连接关闭的疑虑。感谢他们俩。
- 如果您的脚本预计持续时间少于 100 毫秒,请不要费心关闭连接。
- 但是:如果脚本预计会持续更长时间,并且在最后一次数据库操作和脚本关闭之间有一段时间,请通过调用 *close() 为其他人释放连接。
我真的很难接受一个答案,因为两个答案都是正确的。只需接受所有评论的答案,使其保持在首位。但是对两个正确答案+1。