常見資料庫連線池的配置

2021-08-07 18:01:13 字數 2784 閱讀 1012

對現有的資料庫連線池做調研對比,綜合性能,可靠性,穩定性,擴充套件性等因素選出推薦出最優的資料庫連線池 。     

note: 本文所有測試均是mysql庫

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

環境配置:

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

1:獲取關閉連線效能測試

測試說明:

圖形:

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效能分析:

2:查詢一條語句效能測試

測試說明:

圖形:

測試資料: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

測試結果:

3:pscache效能對比

測試說明:

測試資料:

cache

1,927

not cache

2,134

測試結果:

測試說明:

pscache的key為prepare執行的sql和catalog等,value對應的為preparestatement物件。開啟快取主要是減少了解析sql的開銷。

幾種常見資料庫連線池的使用比較

注意datasource這個bean在dao層 hibernate或jdbc 的配置檔案裡需要作為datasource名稱的屬性配置到所有bean中 其中 jdbc myds 這個就是jndi名稱了,下一步就是在應用伺服器連線池裡進行資料庫連線以及對應的jndi配置了 一 開源資料連線池 1 dbc...

資料庫連線池配置

連線池的必要性 資料庫連線池是負責分配 管理和釋放資料庫連線,它允許應用程式重複使用乙個現有的資料庫連線,可以視作乙個存放資料庫連線的容器。資料庫連線池採用了資源池設計模式,用於資源共享,避免資源的頻繁分配與釋放問題。同時便於統一管理,可以通過對連線池的控制,限制系統與資料庫的連線,監視資料庫的連線...

資料庫連線池技術 DBCP連線池 配置

最近遇到資料庫連線池配置問題,搜了很多資料對照著進行全域性配置都沒有解決。報的錯誤是 org.apache.tomcat.dbcp.dbcp.sqlnestedexception cannot create jdbc driver of class for connect url jdbc mysq...