2012-07-25 57 views
9

我正在和几个软件开发人员进行会议,并且建议尽快在我的应用程序代码中关闭数据库连接?有人可以告诉我在应用程序中保持连接的危害是什么。保持数据库连接打开是否昂贵?

我是从一个数据库

+0

小规模使用不会造成任何伤害,但是某些数据库以每个连接为基础进行许可,因此长时间保持连接会打开其他访问权限。 – 2012-07-25 21:55:59

+0

为什么是-1?我认为这是一个非常有用的问题 – TimeToCodeTheRoad 2012-07-25 21:57:34

回答

8

认为它像一辆公共汽车上的座位的一个表中读取数据。

当你打开连接,你填满这些座位 - 最终,公交车已满,不能再接受乘客(或打开更多的数据库连接)。任何时候,公共汽车必须拒绝一个乘客,因为它的容量,该乘客不得不等待另一辆公共汽车来。

通过在完成连接时关闭连接,可腾出更多连接的空间 - 这意味着需要与数据库交互的更多程序可以执行所需的操作,而无需等待连接释放。不关闭连接意味着数据库需要确定如何处理所有的连接,如果数据库没有像打开新连接那样快速关闭连接,会导致问题。

当您使用连接池时会发生变化(请参阅下面的注释);在这些情况下,您会希望您的游泳池为您处理打开和关闭连接。如果你没有把你的连接集中起来,让它们保持开放状态的时间不再浪费资源。

+4

这不是全部的事实。当使用连接池时,最好始终保持连接的打开状态,因为对于大多数DBMS *打开*连接是非常有用的。 – 2012-07-25 22:17:51

+0

+1,好比喻!我同意@a_horse_with_no_name,因为打开连接可能很昂贵。 – halfer 2012-07-25 22:20:02

+0

感谢您的提示 - 我在答案的底部添加了一段。如果需要更多的调整,让我知道! – girasquid 2012-07-25 22:20:35

相关问题