從here爲什麼每次打開新連接時,系統的許多打開連接的連接池的成本較低?
通常的回答,開放數據庫連接是昂貴的操作,所以 池保持連接活躍,使得當一個連接是 以後請求,活性者之一被優先使用到 開放另一個。
我理解DB管理中的Connection Pool
的概念。這是「什麼是〜」問題的答案。所有開發人員的博客文章,答案,教程,DB文檔總是回答一個問題「什麼是」。就像他們不斷複製/粘貼文本一樣。沒有人試圖解釋「爲什麼如此」和「如何」。上面的答案就是一個例子。
我不明白爲什麼和如何它可能保持一致,也就是說,30間打開的連接池中的是比在需要時打開一個新的連接的系統成本更低。
假設我有一個位於澳大利亞的網絡服務器。 AWS中的數據庫位於美國俄勒岡州的某個地方。或在GB。或者距離AUS很遠的地方。所以他們都說,保持一個20 -...打開的連接池對於內存和系統性能而言會比在這種情況下每次打開一個新連接成本更低?它是如何的?爲什麼?
建立一個連接需要兩個端點之間的通信(思考握手),內存分配等。另外,如果你正在執行一個循環以執行一些數據庫交互,那麼重新使用相同的活動連接要比在循環內打開和關閉;即使進行單一連接只有很小的差異,它也會循環增長。 –
綠色,因爲它的價值,我已經添加了額外的信息到提示這個問題的答案:請參閱http://stackoverflow.com/questions/4041114/what-is-database-pooling/4041136#4041136。但米奇和瑪麗亞基本上是對的,建立聯繫並不是一個即時的過程。 – paxdiablo