zoukankan      html  css  js  c++  java
  • 数据源(HikariCP)

    HikariCP 是一个高性能的 JDBC 连接池组件。下图是性能的比较测试结果:

    自从看到了这张图,我就对于我之前一直在使用了 c3p0 产生了深深的怀疑,迫切的期望得到对应的数据来优化我的代码。

    =====================================

    ============ 连接池比对 ============
    =====================================

    proxool 更新时间截止2008年。速度可以,稳定性稍差,发较高的情况下会出错。

    c3p0 太古老,代码及其复杂,不利于维护。貌似都比它强。

    dbcp 是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。

    druid 功能比较全面,且扩展性较好,比较方便对jdbc接口进行监控跟踪等。

    BoneCP 13年前最快的连接池项目。2013年后不再更新,心灰意冷。

    HikariCP 光连接池

    HikariCP 与 Spring的结合

    <!-- Hikari Datasource -->  
    <bean id="dataSourceHikari" class="com.zaxxer.hikari.HikariDataSource"  destroy-method="shutdown">  
     <!-- <property name="driverClassName" value="${db.driverClass}" /> --> <!-- 无需指定,除非系统无法自动识别 -->  
     <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" />  
     <property name="username" value="${db.username}" />  
     <property name="password" value="${db.password}" />  
      <!-- 连接只读数据库时配置为true, 保证安全 -->  
     <property name="readOnly" value="false" />  
     <!-- 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒 -->  
     <property name="connectionTimeout" value="30000" />  
     <!-- 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟 -->  
     <property name="idleTimeout" value="600000" />  
     <!-- 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒,参考MySQL wait_timeout参数(show variables like '%timeout%';) -->  
     <property name="maxLifetime" value="1800000" />  
     <!-- 连接池中允许的最大连接数。缺省值:10;推荐的公式:((core_count * 2) + effective_spindle_count) -->  
     <property name="maximumPoolSize" value="15" />  
    </bean>
    

      

    <bean id = "dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">  
            <property name="driverClassName" value="${jdbc.driverClassName}" />  
            <property name="jdbcUrl" value="${jdbc.url}" />  
            <property name="username" value="${jdbc.username}" />  
            <property name="password" value="${jdbc.password}" />  
            <property name="maximumPoolSize" value="100" />  
            <property name="minimumIdle" value="10" />  
            <property name="connectionTestQuery" value="select 1" />  
            <property name="dataSourceProperties">  
                <props>  
                    <prop key="cachePrepStmts">true</prop>  
                    <prop key="prepStmtCacheSize">250</prop>  
                    <prop key="prepStmtCacheSqlLimit">2048</prop>  
                    <prop key="useServerPrepStmts">true</prop>  
                </props>  
            </property>  
        </bean> 

    1 下载地址

    http://mvnrepository.com/artifact/com.zaxxer/HikariCP

    2 Git主页

    https://github.com/brettwooldridge/HikariCP

  • 相关阅读:
    Java实现 蓝桥杯VIP 基础练习 完美的代价
    Java实现 蓝桥杯VIP基础练习 矩形面积交
    Java实现 蓝桥杯VIP 基础练习 完美的代价
    Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
    Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
    Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
    Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
    Java实现 蓝桥杯 蓝桥杯VIP 基础练习 数的读法
    核心思想:想清楚自己创业的目的(如果你没有自信提供一种更好的产品或服务,那就别做了,比如IM 电商 搜索)
    在Linux中如何利用backtrace信息解决问题
  • 原文地址:https://www.cnblogs.com/panie2015/p/7865113.html
Copyright © 2011-2022 走看看