监控SQL的执行时间、ResultSet持有时间、返回行数、更新行数、错误次数、错误堆栈信息。
SQL执行的耗时区间分布。什么是耗时区间分布呢?比如说,某个SQL执行了1000次,其中0~1毫秒区间50次,1~10毫秒800次,10~100毫秒100次,100~1000毫秒30次,1~10秒15次,10秒以上5次。通过耗时区间分布,能够非常清楚知道SQL的执行耗时情况。
监控连接池的物理连接创建和销毁次数、逻辑连接的申请和关闭次数、非空等待次数、PSCache命中率等。
其次,方便扩展。Druid提供了Filter-Chain模式的扩展API,可以自己编写Filter拦截JDBC中的任何方法,可以在上面做任何事情,比如说性能监控、SQL审计、用户名密码加密、日志等等。
Druid内置提供了用于监控的StatFilter、日志输出的Log系列Filter、防御SQL注入攻击的WallFilter。
与主流连接池的性能比较
场景一
单线程测试,连续执行100万次,对比时间、YungGC、FullGC的情况。这个场景用于测试非激烈竞争的情况下的性能差别。
测试结果
连续执行1000,000次,Druid和DBCP的测试对比结果:
连接池 时间(毫秒) YungGC FullGC
Druid 221 6 0
DBCP 1,606 70 0
BoneCP 762 4 0
场景二
多个线程,连续打开关闭连接1000,000次。
测试结果
连续执行1000,000次,Druid和DBCP的测试对比结果:
连接池 线程数量 时间(毫秒) YungGC FullGC
Druid 2 1,177 34 0
DBCP 2 2,738 139 0
BoneCP 2 2,242 8 0
Druid 5 3,7027 80 0
DBCP 5 39,203 350 0
Druid 10 11,172 162 0
DBCP 10 79,220 702 0
Druid 20 38,817 328 0
DBCP 20 159,966 1402 0
参考配置:
Xml代码
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc_url}" />
<property name="username" value="${jdbc_user}" />
<property name="password" value="${jdbc_password}" />
<property name="filters" value="stat" />
<property name="maxActive" value="20" />
<property name="initialSize" value="1" />
<property name="maxWait" value="60000" />
<property name="minIdle" value="1" />
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 'x'" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="50" />
</bean>
分享到:
相关推荐
普元EOS开发平台默认数据源支持jndi、c3p0,但其性能较差,改用阿里巴巴Druid数据库连接池可以提高性能。下面是配置阿里Druid数据库连接池的步骤和说明: 1. 通过 governor,将数据源修改成 JNDI 数据源,保存即可...
druid-1.0.9数据库连接池技术,由阿里巴巴提供。使用步骤: 1.导入jar包:druid-1.0.9.jar 2.定义配置文件:druid.properties,可取任意名称,放任意路径 3.获取数据库连接池对象:DruidDataSourceFactory 4....
阿里巴巴的Druid数据库连接池是Java开发中广泛使用的数据库连接管理工具,因其高效、稳定以及丰富的监控特性而备受赞誉。本示例项目“yunnysunny-druid-demo-master”提供了全面的Druid使用教程,包括与Spring框架的...
**Druid数据库连接池详细属性配置** Druid是阿里巴巴开源的一款高效、强大的数据库连接池组件,它在性能、监控和扩展性方面表现出色。Druid不仅是一个连接池,还包含了SQL解析器、日志监控、SQL执行效率分析等功能...
Druid数据库连接池是一款高效、功能强大且高度可扩展的数据库连接池组件,由阿里巴巴开源并在众多项目中广泛应用。它的全称是Dynamic Routing Data Source,即动态路由数据源,旨在提供监控、性能统计、SQL审计等...
阿里Druid数据库连接池是阿里巴巴开发的一款高效、强大的数据库连接池组件,它的出现是为了替代传统的DBCP和C3P0连接池,以提供更优秀的性能和更完善的管理功能。Druid设计目标是监控、扩展性和稳定性,使得它在实际...
**Druid数据库连接池** Druid是阿里巴巴开源的一款高性能、高质量的Java数据库连接池组件,它的全称是Druid Data Source。作为一个优秀的数据库连接池,Druid提供了许多强大的功能,如监控、SQL解析、参数绑定优化...
Druid为监控而生的数据库连接池,它是阿里巴巴开源平台上的一个项目。Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能.它可以替换DBCP和C3P0连接池。Druid提供了一个高效、功能强大、可...
JDBC工具类使用阿里巴巴的数据库连接池Druid,支持高并发,支持多线程环境下的事务和查询测试。
Druid是阿里巴巴开源的一个高性能、多功能的数据库连接池组件,它在Java开发中广泛应用于各种项目的数据库管理。在1.2.8版本中,Druid提供了一系列优化和改进,旨在提高数据库访问性能,增强监控能力,并简化数据库...
**阿里巴巴数据库连接池Druid详解** Druid是阿里巴巴开源的一款高效、强大且可扩展的数据库连接池组件。作为Java世界中的优秀数据源管理工具,它不仅提供了基础的数据库连接池功能,还内置了丰富的监控和扩展特性,...
JDBC工具类使用阿里巴巴的数据库连接池Druid,支持高并发,有多线程环境下的事务和查询测试。
1. **Druid数据库连接池** - **连接池的作用**:数据库连接池在应用启动时预创建一定数量的数据库连接,供应用在运行时复用,避免频繁创建和关闭连接带来的性能损耗。 - **Druid特性**:Druid提供了SQL拦截、连接...
Druid数据库连接池是阿里巴巴开源的一款高效、强大的数据库连接池组件,它在Java应用程序中用于管理数据库连接,提高数据库访问性能并优化资源利用。这个压缩包包含`druid-1.1.22.jar`和`druid.properties`两个文件...
阿里Druid连接池是阿里巴巴开源的一个高性能数据库连接池组件,它是Java编程语言中广泛使用的数据库连接管理工具。Druid提供了一套完善的监控体系,能够帮助开发者实时监控数据库的运行状态,提升系统的稳定性和性能...
阿里巴巴数据库连接池,通常指的是...总之,阿里巴巴的Druid数据库连接池以其高效、稳定和易用性,成为了很多Java项目中的首选。通过理解和掌握Druid的使用,我们可以更好地优化数据库访问性能,提升系统整体的稳定性。
Druid数据库连接池是一款高效、功能强大且高度可扩展的Java数据库连接池。它由阿里巴巴公司开发,被广泛应用于各种Java Web应用中,为应用程序提供高效、稳定和灵活的数据库连接管理。Druid的核心特性包括连接池管理...
Druid是阿里巴巴开源的一个...总的来说,Druid数据库连接池通过其全面的功能和高效的性能,为Java应用提供了一种优秀的数据库连接管理解决方案。在实际项目中,合理配置和使用Druid,可以显著提升系统的稳定性和效率。