您的位置:首页 > 数据库 > MySQL

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

2016-03-31 16:42 525 查看


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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: