java資料庫連線池效能對比

2021-07-27 18:46:20 字數 2468 閱讀 2402

connection conn = datasource.getconnection();

preparedstatement stmt = conn.preparedstatement("select 1");

resultset rs = stmt.executequery();

while (rs.next())

rs.close();

stmt.close();

conn.close();

測試各種併發場景下執行申請1,000,000(一百萬)次總耗時的效能對比。

這是一台雙路至強cpu的工作站,比我之前在mac book pro上做的測試,更接近真實伺服器的執行環境。

資料庫連線池

1 thread

2 threads

5 threads

10 threads

20 threads

50 threads

100 threads

druid

248710

1,133

1,134

9051,107

1,468

dbcp

6601,522

3,545

4,176

3,671

4,237

14,129

bonecp

3,522

2,930

2,579

3,745

7,434

11,991

14,584

c3p0

4,275

9,509

3,371

10,439

13,472

19,848

36,153

proxool

7,187

7,707

11,037

10,777

15,222(error)

18,100(error)

21,547(error)

tomcat-jdbc

372736

1,879

1,727

1,576

1,322

12,545

jboss-datasource

1,326

1,184

2,928

3,765

3,099

3,278

10,812

資料庫連線池

1 thread

2 threads

5 threads

10 threads

20 threads

50 threads

100 threads

druid

309605

1,028

947962

8971,238

dbcp

9241,461

4,062

4,030

4,908

5,505

14,517

bonecp

3,047

2,055

2,549

3,821

6,367

12,865

18,832

c3p0

4,018

8,206

8,897

10,667

12,367

25,822

38,681

proxool

6912

4,714

4,851

11,908

16,066(error)

19,568(error)

18,036(error)

tomcat-jdbc

400740

1,811

1,707

1,618

1,624

11,905

jboss-datasource

1,369

1,105

4,002

3,089

3,483

3,665

11,782

druid是效能最好的資料庫連線池,tomcat-jdbc和druid效能接近。

proxool在激烈併發時會拋異常,完全不靠譜。在併發10的情況下,會使用11或者12個物理連線。

c3p0和proxool都相當慢,慢到影響sql執行效率的地步。

bonecp效能並不優越,採用linkedtransferqueue並沒有能夠獲得效能提公升。

jboss-datasource雖然穩定,但是效能很糟糕

bonecp和c3p0完全不遵循minpoolsize的配置,只要有活動請求,就會用到maxpoolsize。

bonecp和c3p0存在較大併發時使用的物理連線超過maxpoolsize數量,達到maxpoolsize+1

資料庫連線池對比

常見的driverclassname和url oracle mysql sqlserver sqlserver 2005 druid bonecp dbcp c3p0 proxool jboss tomcat jdbc lru是否是 否是是?pscache是是 是是否否 是pscache oracl...

常用Java資料庫連線池效能測試

testcaseconnection conn datasource.getconnection preparedstatement stmt conn.preparedstatement select 1 resultset rs stmt.executequery while rs.next r...

各種資料庫連線池對比

主要功能對比 druid bonecp dbcp c3p0 proxool jboss tomcat jdbc lru是否是 否是是?pscache是是 是是否否 是pscache oracle optimized是否 否否否否 否exceptionsorter是否 否否否是 否更新維護是否 否否否...