hikari优点:
1:字节码精简:优化的代码,编译后的字节码最少,减少了CPU的资源
2:优化代理和拦截器:减少代码
3:自定义数组类型(FastStatememntList)代替ArrayList:避免每次get()调用都是进行range check,避免调用remove()时的从头到尾的扫码(由于连接的特点是获取连接的先释放)
4:自定义集合类型(concurrentBag:提高并发读写的效率)
5:其他针对BoneCP缺陷的优化:比如对耗时超过一个CPU时间片的方法调用的研究
Druid优点:
Druid提供了性能卓越的连接池功能外,还集成了SQL监控,黑名单拦截功能。
Druid提供的监控功能,可以清楚的知道连接池和SQL的工作情况;
1:可以监控SQL的执行时间、resultSet持有时间、返回行数、更新行数、错误次数、错误堆栈信息;
2:SQL执行的耗时区间分布
3:监控连接池的物理连接创建和销毁次数、逻辑连接的身躯和关闭次数、非空等待次数、pscache命中率
Druid提供了filter-chain模式的扩展api,可以自己编写filter拦截jdbc的任何方法,可以在上面做任何事情,比如性能监控,SQL审计,用户名密码加密,日志
Druid集合了开源和商业数据库连接池的优秀特性,并结合阿里巴巴大规模苛刻生产环境的使用经验进行优化
1、替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
2、可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
3、数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
4、SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
5、扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。