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