连接池
详情
定义
连接池是一种复用数据库连接的技术,可以看作一个缓存数据库连接对象的容器。它在应用启动时预先创建若干连接,并在需要时借出,使用完后归还。
工作流程
graph LR
A[应用请求数据库连接] --> B{连接池中有空闲连接?}
B -- 有 --> C[直接借出]
B -- 无 --> D[等待或新建(若未达上限)]
C --> E[执行SQL]
E --> F[归还连接到池中(不是关闭!)]优点
- 性能提升:避免重复建立连接的开销
- 资源控制:限制最大连接数,防止数据库崩溃
- 监控能力:如 Druid 可统计慢 SQL、活跃连接数等
常见连接池实现
| 方案 | 类型 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| HikariCP | 第三方连接池 | 极快、轻量、配置简单 | 功能较“纯粹” | Spring Boot 默认推荐 |
| Druid | 阿里开源连接池 | 监控强大、SQL 防火墙、统计 | 稍重 | 企业级应用、需监控 |
| C3P0、DBCP | 老牌连接池 | 成熟稳定 | 性能一般、配置复杂 | 老项目维护 |
💡 注意:这些连接池仍然基于 JDBC!它们内部还是调用
DriverManager.getConnection()创建连接,只是做了池化管理。
关联网络
演化日志
- v0.1 (2026-01-31):初始版本