实例化 Prisma Client
以下示例演示了如何从 生成的客户端 的 默认路径 导入和实例化你的 生成的客户端。
- TypeScript
- JavaScript
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()
PrismaClient
实例的数量很重要
你的应用程序通常只应创建一个 PrismaClient
的实例。如何实现取决于你在 长时间运行的应用程序 中还是在 无服务器环境 中使用 Prisma ORM。
这样做的原因是每个 PrismaClient
实例都管理一个连接池,这意味着大量客户端可能会耗尽数据库连接限制。这适用于所有数据库连接器。
如果你使用MongoDB 连接器,连接由 MongoDB 驱动程序连接池管理。如果你使用关系数据库连接器,连接由 Prisma ORM 的 连接池 管理。每个 PrismaClient
实例都会创建自己的池。
-
每个客户端都会创建自己的 查询引擎 实例。
-
每个查询引擎都会创建一个 连接池,其默认池大小为
- 对于关系数据库,为
num_physical_cpus * 2 + 1
- 对于 MongoDB,为
100
- 对于关系数据库,为
-
太多的连接可能会开始降低你的数据库速度,最终会导致错误,例如
Error in connector: Error querying the database: db error: FATAL: sorry, too many clients already
at PrismaClientFetcher.request