對現有的資料庫連線池做調研對比,綜合性能,可靠性,穩定性,擴充套件性等因素選出推薦出最優的資料庫連線池 。
1:效能方面 hikaricp>druid>tomcat-jdbc>dbcp>c3p0 。hikaricp的高效能得益於最大限度的避免鎖競爭。
2:druid功能最為全面,sql攔截等功能,統計資料較為全面,具有良好的擴充套件性。
3:綜合性能,擴充套件性等方面,可考慮使用druid或者hikaricp連線池。
4:可開啟preparestatement快取,對效能會有大概20%的提公升。
功能dbcp
druid
c3p0
tomcat-jdbc
hikaricp
是否支援pscache是是
是否否監控
擴充套件性弱好弱
弱弱sql攔截及解析無支援
無無無**
簡單中等
複雜簡單
簡單更新時間
2015.8.6
2015.10.10
2015.12.09
2015.12.3
特點依賴於common-pool
阿里開源,功能全面
歷史久遠,**邏輯複雜,且不易維護
優化力度大,功能簡單,起源於bonecp
連線池管理
linkedblockingdeque
陣列fairblockingqueue
threadlocal+copyonwritearraylist
proxool網上有評測說在併發較高的情況下會出錯,proxool便沒有進行調研。
druid的功能比較全面,且擴充套件性較好,比較方便對jdbc介面進行監控跟蹤等。
c3p0歷史悠久,**及其複雜,不利於維護。並且存在deadlock的潛在風險。
cpuintel(r) xeon(r) cpu e5-2430 v2 @ 2.50ghz,24core
msyql version
5.5.46
tomcat-jdbc version
8.0.28
hikaricp version
2.4.3
c3p0 version
0.9.5-pre8
dbcpversion
2.0.1
druidversion
1.0.5
測試說明:
圖形:
mock效能資料 (單位:ms)520
50100
tomcat-jdbc
442447
1,013
1,264
c3p0
4,480
5,527
7,449
10,725
dbcp
676689
8671,292
hikari
3833
3830
druid
291293
562985
mysql效能資料 (單位:ms)520
50100
tomcat-jdbc
436453
1,033
1,291
c3p0
4,378
5,726
7,975
10,948
dbcp
671679
8971,380
hikari
9682
8778
druid
304424
6901,130
測試結果:
hikaricp效能分析:
測試說明:
圖形:
測試資料:58
2050
100tomcat-jdbc
2,178
1,495
1,769
1,818
1,858
c3p0
3,237
3,451
4,488
5,994
7,906
dbcp
2,816
1,935
2,097
2,243
2,280
hikari
2,299
1,546
1,682
1,751
1,772
druid
2,297
1,551
1,800
1,977
2,032
測試結果:
測試說明:
測試資料:
cache
1,927
not cache
2,134
測試結果:
測試說明:
pscache的key為prepare執行的sql和catalog等,value對應的為preparestatement物件。開啟快取主要是減少了解析sql的開銷。
資料庫連線池效能比對
對現有的資料庫連線池做調研對比,綜合性能,可靠性,穩定性,擴充套件性等因素選出推薦出最優的資料庫連線池 note 本文所有測試均是mysql庫 1 效能方面 hikaricp druid tomcat jdbc dbcp c3p0 hikaricp的高效能得益於最大限度的避免鎖競爭。2 druid功...
資料庫連線池 Redis連線池
基本原理 在內部物件池中,維護一定數量的資料庫連線,並對外暴露資料庫連線的獲取和返回方法。如外部使用者可通過getconnection方法獲取資料庫連線,使用完畢後再通過releaseconnection方法將連線返回,注意此時的連線並沒有關閉,而是由連線池管理器 並為下一次使用做好準備。2.作用 ...
資料庫連線池
實現資料連線池,讓系統有更高有執行效率 using system using system.data using system.data.sqlclient using system.collections using system.threading public class dataaccess...