不使用數(shù)據(jù)庫連接池的步驟
TCP建立連接的三次握手
MySQL認(rèn)證的三次握手
真正的SQL執(zhí)行
MySQL的關(guān)閉
TCP的四次握手關(guān)閉
可以看到,為了執(zhí)行一條SQL,卻多了非常多我們不關(guān)心的網(wǎng)絡(luò)交互。
- 優(yōu)點(diǎn):實(shí)現(xiàn)簡單
- 缺點(diǎn): 網(wǎng)絡(luò)IO較多、數(shù)據(jù)庫的負(fù)載較高、響應(yīng)時(shí)間較長及QPS較低、應(yīng)用頻繁的創(chuàng)建連接和關(guān)閉連接,導(dǎo)致臨時(shí)對象較多,GC頻繁、在關(guān)閉連接后,會出現(xiàn)大量TIME_WAIT 的TCP狀態(tài)(在2個(gè)MSL之后關(guān)閉)
使用數(shù)據(jù)庫連接池的步驟
第一次訪問的時(shí)候,需要建立連接。 但是之后的訪問,均會復(fù)用之前創(chuàng)建的連接,直接執(zhí)行SQL語句。
- 優(yōu)點(diǎn): 較少了網(wǎng)絡(luò)開銷、提升性能、沒了麻煩的TIME_WAIT狀態(tài)