共計 1336 個字符,預(yù)計需要花費 4 分鐘才能閱讀完成。
這篇文章主要講解了“mysql 連接池的概念是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學(xué)習(xí)“mysql 連接池的概念是什么”吧!
在 mysql 中,連接池就是在程序啟動時就創(chuàng)建一定數(shù)量的數(shù)據(jù)庫連接,將這些連接放入一個池子進(jìn)行管理;由程序動態(tài)的進(jìn)行連接的申請、使用和釋放。使用數(shù)據(jù)庫連接池的原因:1、資源復(fù)用,在減少系統(tǒng)資源消耗的基礎(chǔ)上,增加了系統(tǒng)運行的穩(wěn)定性;2、更快的響應(yīng)速度;統(tǒng)一的連接管理,避免數(shù)據(jù)庫連接泄漏。
一、池化技術(shù)
連接池是 connection 對象的緩沖區(qū),它里面會存放一些 connection,當(dāng)程序需要使用 connection 時,如果連接池中有,則直接從連接池獲取,不需要再重新創(chuàng)建 connection。連接池讓程序能夠復(fù)用連接。
池化技術(shù)能減少對象的創(chuàng)建次數(shù),提高程序的響應(yīng)性能,特別是在高并發(fā)場景下,效果更為明顯。當(dāng)對象的創(chuàng)建需要大量的資源,導(dǎo)致創(chuàng)建時間長時,可以考慮使用池化技術(shù)對其進(jìn)行緩存,以便后續(xù)復(fù)用。常見的池化組件有:內(nèi)存池、線程池、連接池等等。
二、什么是數(shù)據(jù)庫連接池
定義:數(shù)據(jù)庫連接池就是在程序啟動時就創(chuàng)建一定數(shù)量的數(shù)據(jù)庫連接,將這些連接放入一個池子進(jìn)行管理。由程序動態(tài)的進(jìn)行連接的申請、使用和釋放。注意,數(shù)據(jù)庫不單單指 Mysql,同樣也可以為 Redis 設(shè)計連接池。
三、為什么要使用數(shù)據(jù)庫連接池
資源復(fù)用。避免了頻繁的創(chuàng)建、銷毀帶來的性能開銷,減少系統(tǒng)資源消耗的基礎(chǔ)上,增加了系統(tǒng)運行的穩(wěn)定性,主要體現(xiàn)在減少內(nèi)存碎片和線程或進(jìn)程的臨時創(chuàng)建。
更快的響應(yīng)速度。由于程序啟動時就準(zhǔn)備好了若干連接備用,業(yè)務(wù)請求直接使用即可,不需要實時進(jìn)行連接的創(chuàng)建、權(quán)限驗證及銷毀等操作,從而減少了系統(tǒng)的響應(yīng)時間。
統(tǒng)一的連接管理,避免數(shù)據(jù)庫連接泄漏。可預(yù)先設(shè)定連接占用的超時時間,假如某條連接被占用超過設(shè)定值,可以強制回收該連接。
四、Mysql 數(shù)據(jù)庫連接的建立過程
客戶端發(fā)起連接請求,TCP 三次握手
Mysql 內(nèi)部權(quán)限驗證
SQL 執(zhí)行語句
Mysql 關(guān)閉
斷開連接,TCP 四次揮手
4.1 不采用連接池
每次執(zhí)行 SQL 語句,都需要建立一條連接,進(jìn)行 TCP 三次握手、權(quán)限驗證、數(shù)據(jù)庫操作、數(shù)據(jù)庫用戶登出、四次揮手等操作
優(yōu)點:實現(xiàn)簡單,不需要設(shè)計連接池;
缺點:應(yīng)用頻繁創(chuàng)建和銷毀臨時連接對象,導(dǎo)致大量內(nèi)存碎片,另外,在連接關(guān)閉后還會出現(xiàn)大量的 TIME_WAIT 狀態(tài)。
4.2 采用連接池
程序在啟動時,便創(chuàng)建若干連接備用,每次 SQL 獲取可用連接操作即可,嘎嘎快。
五、連接池的運行原理
從連接池獲取連接或者創(chuàng)建連接;
使用連接,用完歸還到連接池;
在系統(tǒng)關(guān)閉前,關(guān)閉所有連接并釋放資源
六、線程池和連接池關(guān)系
一般線程池數(shù)量和連接池數(shù)量一致,線程在使用完連接后歸還連接。
區(qū)別:
線程池是主動去執(zhí)行任務(wù)
連接池是被動使用,一個連接只能被一個線程申請并使用。
感謝各位的閱讀,以上就是“mysql 連接池的概念是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對 mysql 連接池的概念是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
向 AI 問一下細(xì)節(jié)丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!