MySQL DataSource 性能对比(2015-8-19)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sadfishsc/article/details/51027918

1. 本地性能测试耗时(一)

共同条件:测试程序与数据库在同一台主机上,各DataSource均采用默认配置,每个线程循环1000次,查询语句为select * from table

场景一:10行数据,10个线程

场景二:10行数据,100个线程

场景三:1000行数据,10个线程

场景四:1000行数据,100个线程

场景五:100000行数据,10个线程

结论:

tomcat-jdbc-pool ≈ druid > dbcp2 > BoneCP > c3p0

备注:

负载(数据量、线程数等)过大时,本机CPU将成为瓶颈,会极大影响查询耗时

2. 本地性能测试耗时(二)

默认设置下,各DataSource的连接池大小如下:

tomcat-jdbc-pool(initialSize, minIdle, maxIdle, maxActive) = (10, 10, 100, 100)

dbcp2(initialSize, minIdle, maxIdle, maxTotal) = (0, 0, 8, 8)

c3p0: (initialPoolSize, minPoolSize, maxPoolSize) = (3, 3, 15)

druid(initialSize, minIdle, maxIdle, maxActive) = (0, 0, 8, 8)

BoneCP:不支持设置连接池大小

将各DataSource连接池大小统一设置成最小值为4,最大值为16后,再重新进行一轮性能测试,结果如下:

druid > tomcat-jdbc-pool > dbcp2 > c3p0

结论:在连接池远大于druid的情况下,tomcat-jdbc-pool的性能与之相当;而在同等连接池的情况下,则不如druid,故综合来看druid优于tomcat-jdbc-pool

3. 最新版本(截至2015-8-19)

tomcat-jdbc-pool

org.apache.tomcat:tomcat-jdbc:8.0.24

更新于2015-7-1

druid

com.alibaba:druid:1.0.15

更新于2015-6-30

dbcp2

org.apache.commons:commons-dbcp2:2.1.1

更新于2015-8-2

BoneCP

com.jolbox:bonecp:0.8.0.RELEASE

更新于2013-10-23

c3p0

com.mchange:c3p0:0.9.5.1

更新于2015-6-16

展开阅读全文

没有更多推荐了,返回首页