实例化 Prisma Client
以下示例展示了如何从默认路径导入并实例化您的生成的 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