2012-07-25 84 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

相關問題