连接池
- 连接池就是维护一组可复用的数据库连接
- 降低建立连接的开销、限制数据库并发连接数、提升高并发下的稳定性
- 不需要每次重新建立和关闭连接。它主要解决连接建立成本、高并发连接数过多以及数据库连接资源保护的问题
- 连接池可以限制最多只有 20 个请求同时占用数据库连接,其余请求排队,从而避免 PostgreSQL 因为连接数过多而被打爆
- 连接池大小太多的话,会占用更多的内存
场景
- 高并发 API 服务:大量请求同时查询数据库。
- 多 Worker / 多实例部署:PM2、K8s、Gunicorn 等场景尤其需要注意,因为每个进程通常有自己的连接池。
- 微服务:多个服务都访问同一个 PostgreSQL,需要严格控制总连接数。
连接池优化
- 合理设置连接池大小
- 控制连接等待时间
- 减少连接占用时间
- 优化慢 SQL