2015-02-24 107 views
0

哪一個更好?使用HTTP Servlets中的連接池關閉連接的位置

a)在doXXX()方法開始時從連接池中獲取連接,並在最後關閉。

在整個doXXX()方法中使用此連接。這樣它將只從連接池中獲取連接一次,但連接將在執行doXXX()所需的全部時間內打開。

b)從連接池爲每個數據庫操作和關閉獲取連接。

它將從連接池中爲每個數據庫操作獲取連接,但會立即關閉。

+1

沒有「JDBC servlet」這樣的東西;這些是完全獨立的實體。如果您已從連接池獲得連接,請讓池處理它。 – fge 2015-02-24 20:39:38

+0

它是HTTP Servlets ..是連接池已經在那裏.. – Awesome 2015-02-24 20:44:11

+0

b的缺點是什麼?它非常流行,Tomcat帶有一個開箱即用的JDBC連接池。 – 2015-02-24 20:46:40

回答

1

這取決於。從池中獲得連接,最壞的情況可能導致昂貴的創建新連接,速度可能很慢。在數據庫調用之間,它要做多少時間?一般來說,每次操作後釋放會減慢特定進程的速度,但會加速其他進程的速度,反之亦然。你只需要在大負荷下擔心這一點。

+0

讓我們假設所有時間都是100-200個併發請求。 .. doXXX()可能需要幾毫秒來處理每個Web請求..對於每個Web請求,4-5數據庫請求已完成.. – Awesome 2015-02-24 20:48:17

+0

這可能無關緊要,但我猜測它是選擇B IMO的做法稍好一些。例如,如果你的負載增加了一倍,它就更具可擴展性。 – Necreaux 2015-02-24 20:52:52

+0

是的,我傾向於同樣的選擇..謝謝你的確認.. – Awesome 2015-02-24 20:55:16