提交订单性能优化系列之003-测试阿里巴巴的druid数据源

概括总结

使用druid数据源之后,相对于第002版自己随手写的数据库,性能反而下降了8.49%。原因在于,002版是“随手”写的,因此功能非常简陋,要什么没什么,只能从内存中获取连接,因此很快。而druid数据源是一个工业级别的产品,它的内部做了大量的优化(比如多线程控制、性能监控等),这些优化的代码在运行的时候都是需要花时间的,因此相对就慢了一些。

003版本更新说明

pom.xml文件中引入了新的jar包:

<!-- 阿里的druid数据库连接工具 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

它提供了一般的数据库连接池工具都具备的功能,比如设置初始化连接数、最大连接数、最小空闲连接数等。但是它最大的卖点是它优秀的监控功能:哪些SQL执行次数最多?哪些SQL执行时间最长?等等之类的问题,它都帮你记录了。可以参考这篇文章:Druid Monitor监控JavaSE和JavaWeb

003版本中,修改了“JdbcUtil003.java”类,提供了一个setDataSource方法,以方便以后修改成其他的数据库连接池:

/** 设置数据库源 */
public static void setDataSource(DataSource dataSourceOut) {
    dataSource = dataSourceOut;
}

这个版本也做了一些其他的小修改,在这里就不列举。

测试结果

三个版本平均提交一个订单的耗时情况如下:

001版本耗时(ms)002版本耗时(ms)003版本耗时(ms)
183106115

002版本相对于001版本性能提升了: (183 - 106) / 183 * 100% = 42.07%

003版本相对于001版本性能提升了: (183 - 115) / 183 * 100% = 37.15%

003版本相对于002版本性能下降了: (115 - 106) / 106 * 100% = 8.49%

【备注】:不同的机器上的测试结果会不一样,以上测试结果仅供参考。

“最好的”数据库连接池

druid的自我介绍是这样的:

imagepng

“最好的”这三个字还真是自信啊,反正其他的数据库连接池都没说过这种话~

衷心希望它能越做越好,毕竟我们公司是一直都在用它。

源码

003版本的github源码在这里,如果不知道怎样运行项目,请参考这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值