保持数据库连接打开是否昂贵?

时间:2012-07-25 21:54:42

标签: database session

我正在与一些软件开发人员会面,并建议在我的应用程序代码中尽快关闭数据库连接?有人可以告诉我在应用程序中保持连接打开的危害是什么。

我正在从数据库的单个表中读取数据

1 个答案:

答案 0 :(得分:8)

把它想象成公共汽车上的座位。

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

通过在完成连接后关闭连接,您可以腾出空间来获得更多连接 - 这意味着需要与数据库交互的更多程序可以执行他们需要的操作,而无需等待连接到免费起来。不关闭连接意味着数据库需要弄清楚如何处理所有连接,这可能会导致问题,如果您的数据库没有像打开新连接那样快速关闭连接。

当您使用连接池时,这会发生变化(请参阅下面的评论);在这些情况下,您会希望您的池为您处理打开和关闭连接。如果你没有把你的连接汇集起来,那么让它们保持打开的时间比你需要的还要多,浪费资源。