連接池釋義
- 什麼是數據庫連接池?
數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重複使用一個現有的數據庫連接,而不是再重新建立一個;釋放空閒時間超過最大空閒時間的數據庫連接來避免因爲沒有釋放數據庫連接而引起的數據庫連接遺漏。
- 連接池是可以有效降低MySQL-Server負載
原理是: 連接池使用一個共享資源的模式,如併發100個請求,實際上並不是每個請求的所有時間都在執行SQL查詢。這樣100個請求,共享20個MySQL連接就可以滿足需求了。當一個請求操作完數據庫後,開始進入模板渲染等其它邏輯流程,這時就會釋放數據庫連接給其他的請求使用。
連接池僅在超大型應用中才有價值。普通的應用採用MySQL長連接方案,每個php-fpm創建一個MySQL連接,每臺機器開啓100個php-fpm進程。如果有10臺機器,每臺機器併發的請求爲100。實際上只需要創建1000個MySQL連接就能滿足需求,數據庫的壓力並不大。即使有100臺機器,硬件配置好的存儲服務器依然可以承受。
達到數百或者數千臺應用服務器時,MySQL服務器就需要維持十萬級的連接。這時數據庫的壓力就會非常大了。連接池技術就可以派上用場了,可以大大降低數據庫連接數。
連接池阿里雲RDS中間件方案
RDS中間件數據庫連接池實現
swoole版實現
PHP Swoole之mysql數據庫連接池的實現