HikariCP
老外开源的。
Spring Boot 2 之后默认选择的连接池。
号称性能最快的数据库连接池。
为什么性能好呢?
● 字节码级别的优化-尽量的利用 JIT 的内联手段
● 字节码级别的优化-利用更容易被 JVM 优化的指令
● 代码级别的优化-利用改造后的 FastList 代替 ArrayList
● 代码级别的优化-利用无锁的 ConcurrentBag
HikariCP 包含了许多微观的优化,这些优化单独来看几乎无法衡量,但结合起来就能提升整体性能。
甚至在数百万次的调用中,优化的级别是以毫秒的时间来衡量的。
可能这就是大佬吧。
我想,追求性能的极致,也就不过如此了。
Druid
阿里开源的。
性能不如 HikariCP,但是功能更丰富,支持 sql 级别的监控,慢查询监控,连接池状态的监控等。
经过阿里实践过的,经受住了双十一的考验,有大厂做背书,用着放心。
C3p0
Tomcat Jdbc Pool
BoneCP
Apache Commons DBCP
选型建议
- 默认选择 HikariCP:
○ 适合大多数场景,尤其是 Spring Boot 项目,性能与资源占用平衡最佳。 - 需要监控和安全功能选 Druid:
○ 企业级系统、金融或运维敏感型场景。 - Tomcat 环境选 Tomcat JDBC Pool:
○ 与 Tomcat 深度集成,配置简单。 - 旧系统维护用 DBCP/C3P0:
○ 仅建议在必须兼容旧代码时使用。
根据项目需求权衡性能、功能和运维成本,合理选择即可。