例項化 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