You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prisma连接池超时如何处理?(PlanetScale环境下提升连接限制)

Prisma连接池超时问题解决方法

针对你遇到的Timed out fetching a new connection from the connection pool错误,结合PlanetScale支持高连接数的特性,可按以下步骤排查解决:

  • 调整Prisma连接池配置
    当前连接池限制为17,超时10秒,远低于PlanetScale的承载能力。修改schema.prisma中的数据源配置,调高连接池大小和超时时间:

    datasource db {
      provider = "mysql"
      url      = env("DATABASE_URL")
      pool_size = 50  // 根据应用并发量调整,建议50-100,可逐步测试最优值
      connection_timeout = 30  // 延长连接超时时间至30秒
    }
    
  • 避免PrismaClient实例重复创建
    确保全局只实例化一次PrismaClient,禁止在请求处理、循环等逻辑中重复创建实例,否则会快速耗尽连接池:

    // 全局单例示例(Node.js)
    import { PrismaClient } from '@prisma/client'
    
    const prisma = new PrismaClient()
    export default prisma
    
  • 优化查询性能减少连接占用
    慢查询会长时间占用连接,导致池内可用连接不足:

    • 为频繁查询的字段添加数据库索引
    • 避免N+1查询,使用include或select关联查询
    • 拆分复杂大查询为多个小查询,缩短单连接占用时间
  • 排查连接泄漏
    启用Prisma日志监控连接使用情况,定位未及时释放的连接:

    datasource db {
      // ...其他配置
      log = ["query", "error"]
    }
    

    查看日志中是否存在长时间未结束的查询,检查代码中是否有未正确处理的异步操作导致连接无法回收。

  • 匹配应用并发量调整池大小
    根据实际并发请求数调整pool_size:如果应用并发较高,可逐步调高至100-200(PlanetScale支持高连接数,无需担心上限),但避免一次性设置过大导致数据库资源浪费。

内容的提问来源于stack exchange,提问作者dontknowhy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:45:35