zoukankan      html  css  js  c++  java
  • Druid、BoneCP、DBCP、C3P0等主流数据库对比

     

    关键功能DruidBoneCPDBCPC3P0ProxoolJBoss
    LRU
    PSCache
    PSCache-Oracle-Optimized
    ExceptionSorter
    监控

    扩展

     


    LRU

     

    LRU是一个性能关键指标,特别Oracle,每个Connection对应数据库端的一个进程,如果数据库连接池遵从LRU,有助于数据库服务器优化, 这是重要的指标。在测试中,Druid、DBCP、Proxool、JBoss是遵守LRU的。BoneCP、C3P0则不是。BoneCP在mock环 境下性能可能好,但在真实环境中则就不好了。

    PSCache

    PSCache是数据库连接池的关键指标。在Oracle中,类似SELECT NAME FROM USER WHERE ID = ?这样的SQL,启用PSCache和不启用PSCache的性能可能是相差一个数量级的。Proxool是不支持PSCache的数据库连接池,如果你 使用Oracle、SQL Server、DB2、Sybase这样支持游标的数据库,那你就完全不用考虑Proxool。

    PSCache-Oracle-Optimized

    Oracle 10系列的Driver,如果开启PSCache,会占用大量的内存,必须做特别的处理,启用内部的EnterImplicitCache等方法优化才能 够减少内存的占用。这个功能只有DruidDataSource有。如果你使用的是Oracle Jdbc,你应该毫不犹豫采用DruidDataSource。

    ExceptionSorter

    ExceptionSorter是一个很重要的容错特性,如果一个连接产生了一个不可恢复的错误,必须立刻从连接池中去掉,否则会连续产生大量错误。这个 特性,目前只有JBossDataSource和Druid实现。Druid的实现参考自JBossDataSource。

    监控

    DruidDataSource自身提供有NotEmptyWaitCount、PSCahcheHitCount等有用的监控属性,通过配置StatFilter能够监控SQL的执行情况。

    扩展

    DruidDataSource提供基于Filter-Chain模式的模式的扩展

  • 相关阅读:
    Tomcat服务器原理详解
    junit入门
    lombok
    java 运行指定类的main函数
    席位分配问题——惯例Q值法和d'hondt法的MATLAB程序
    5.2 calendar--通用日期的相关函数(3)
    [笔记]软件体系结构(1)--模式初印象
    hdu 1003
    linux虚拟机上挂载U盘
    Android中Java与web通信
  • 原文地址:https://www.cnblogs.com/Junqiang/p/dataSource.html
Copyright © 2011-2022 走看看