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