why
java 项目中,通常为了是最大限度的使用数据库资源,会使用 数据库连接池 来对数据库连接通道做管理。
数据库连接池会将数据库连接对象在最大空闲时间内保存在内存中,在需要的时候直接调用,以减少 new / close 数据库连接的资源消耗。
what - Hikari / Druid
通常 springboot 项目中会默认 Hikari 作为数据连接池自动引入,
而 Druid 是 阿里 开源的数据库连接池包。
Compare
Hikari: 快 / 使用简单,使用 threadlocal 管理池, 基于字节优化代码,扩展性差,不能拦截/解析sql
Druid: 较快 / 使用简单, 使用数组管理池, 有完善的监听功能和视图展示, 扩展性强。
Result
如果需要监控或者调试 sql, 使用Druid。
如果就是为了简单实用,快速运行,使用 Hikari。
或者可以在开发环境下使用 Druid, 生产环境使用 Hikari.
Note
常见数据库连接池的性能大致对比如下:
hikari>druid>tomcat-jdbc>dbcp>c3p0