← AI 百科

数据库连接池

部署与运维 · 部署 / 数据库 / 性能
一句话:预先建立并维护一批数据库连接,重复使用而不是每次请求都新建连接,提升性能并避免连接数超限。

它是什么

每次和数据库建立新连接都有一定开销(网络握手、身份验证),如果每个请求都新建一个连接用完就扔,在高并发场景下效率低还可能超过数据库允许的最大连接数。连接池的做法是预先建好一批连接放在"池子"里,用的时候取一个,用完还回去,重复利用。

适合干什么

  • 需要处理较高并发请求的应用
  • 数据库报"连接数过多"相关错误时排查

不适合干什么

  • 访问量极低的个人项目(简单场景不配置连接池也不会有明显问题)

普通人怎么用

大部分现代框架和数据库驱动默认自带连接池,通常不需要从零手写,重点是正确配置连接池大小(最大/最小连接数),不用自己实现连接管理逻辑。

进阶用户怎么用

连接池大小不是越大越好,要结合数据库本身允许的最大连接数、应用实例数量综合评估(比如10个应用实例,每个连接池设置100,加起来可能远超数据库承受能力);要处理好连接泄漏问题(用完的连接没有正确归还池子)。

常见误区

  • 以为连接池设置得越大性能越好,实际过大的连接池可能导致数据库本身承受不住,或者占用过多资源却没有实际收益
  • 代码里获取连接后忘记归还(连接泄漏),久而久之池子里可用连接耗尽,导致新请求连不上数据库

和相似工具的区别

  • 和 database-connection-failed 的关系:连接池配置不当(比如泄漏导致池子耗尽)也会表现为连接失败,但根本原因和数据库本身的网络/认证问题不同

入门步骤

  • 确认框架/驱动是否已经内置连接池(大部分都有)
  • 根据并发量和数据库承受能力合理配置连接池大小
  • 检查代码是否有连接使用后忘记归还的情况