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
相关文章推荐
- spark 开发环境读取mysql
- MySQL InnoDB 悲观锁机制
- mysql 修改主键自增值(起始值)
- mysql:键缓存
- Mysql分段统计简单数据信息例如年龄,省份,性别等等
- Mysql5.7忘记root密码及mysql5.7修改root密码的方法
- mysql乐观锁总结和实践
- (转)MYSQL获取自增主键【4种方法】
- mysql记录sql执行时间
- C#获取MySql 数据常用的代码
- mysql悲观锁总结和实践
- mysql读写分离
- mysql使用循环生成测试数据
- MYSQL 分组合并函数
- MySQL中一些常用的数据表操作语句笔记
- Mysql join语法解析与性能分析
- 数据库问题(程序连接mysql错误)
- mysql explain用法
- mysql悲观锁总结和实践
- MySQL百万级数据库优化方案