跳到主要内容

连接池

  • 连接池就是维护一组可复用的数据库连接
  • 降低建立连接的开销、限制数据库并发连接数、提升高并发下的稳定性
  • 不需要每次重新建立和关闭连接。它主要解决连接建立成本、高并发连接数过多以及数据库连接资源保护的问题
  • 连接池可以限制最多只有 20 个请求同时占用数据库连接,其余请求排队,从而避免 PostgreSQL 因为连接数过多而被打爆
    • 连接池大小太多的话,会占用更多的内存

场景​

  • 高并发 API 服务:大量请求同时查询数据库。
  • 多 Worker / 多实例部署:PM2、K8s、Gunicorn 等场景尤其需要注意,因为每个进程通常有自己的连接池。
  • 微服务:多个服务都访问同一个 PostgreSQL,需要严格控制总连接数。

连接池优化​

  • 合理设置连接池大小
  • 控制连接等待时间
  • 减少连接占用时间
  • 优化慢 SQL