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:
○ 僅建議在必須兼容舊代碼時使用。
根據項目需求權衡性能、功能和運維成本,合理選擇即可。