2009-08-05 15 views
2

這是我無法理解的。許多Web框架在內部使用數據庫池。如果HTTP連接是無狀態的,我無法理解數據庫池如何在那裏工作?我可以想象,數據庫池只能用於Keep-Alive連接嗎?如果HTTP連接是無狀態的,數據庫連接池如何爲web應用程序工作?

任何想法?

謝謝!

+0

我明白你在說什麼,並且有同樣的問題。當aspx頁面完成執行時,連接如何保留在內存中?什麼最終關閉連接? – Petras 2011-06-21 13:25:12

回答

5

Web服務器維護與數據庫建立連接的「池」。對於每個HTTP請求,它可以從該池中已經存在的連接中選擇一個,以便在該請求期間使用。這可以提高性能並減少服務器負載,因爲Web和數據庫服務器不需要爲每個請求打開新的連接(這可能會產生大量開銷)。數據庫連接的使用方式也是無狀態的。 Web服務器獲取其中一個連接,運行一些查詢,將連接重新放回池中。

+0

啊,明白了。像這樣簡單。謝謝! – 2009-08-06 00:05:46

2

Web應用程序可能會在其生命週期中接受多個HTTP連接。初始連接將建立DB句柄,並且到相同應用程序的後續連接將重新使用它。

+0

謝謝!說得通。 – 2009-08-06 00:06:34