簡體   English   中英

什么是應用程序中的連接池?

[英]What is connection pooling in an application?

框架或應用程序會自動連接數據庫,而我們只需要使用數據庫對象來進行與數據庫相關的操作。 在CMS或框架中,術語“連接池”非常流行。 您可以選擇CMS或PHP框架。

  • 什么是連接池?
  • 有人可以舉例說明嗎?
  • 連接池的優點是什么?

沒有連接池:

每次要與數據庫對話時,都必須打開一個連接,使用它,然后再次關閉它。

使用連接池:

連接始終保持打開狀態(在池中)。 當您想與數據庫對話時,您需要建立一個已經沒有使用的連接,使用它,然后再放回去。

這樣會比始終打開和關閉它們更有效。

連接池通常指的是具有正在重用的連接池。 將此與非池化連接進行對比:通常,每個程序實例每次運行時都自行連接到數據庫。 在PHP程序中,只有$db = new PDO(...) ,它連接到數據庫。 如果您有100個同時訪問者,則將同時運行該腳本的100個獨立實例,並同時建立與數據庫的100個獨立連接。 這可能效率很低和/或暫時使數據庫服務器不堪重負。

連接池通過建立與數據庫的50個永久連接(這些連接始終保持打開狀態)來工作。 然后,PHP腳本只需選擇這些打開的連接之一即可與數據庫進行對話,並在完成后將其放回池中。 如果突然有超過50個PHP腳本嘗試一次使用該池中的連接,則前50個將成功,其余的將不得不排隊等待直到未使用的連接變為可用。 這是更有效的,因為連接不會一直打開和斷開,並且在突然出現峰值時也不會使數據庫服務器不堪重負。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM