mediumBackend EngineerStartup
What is database connection pooling and why is it critical for production?
Posted 18/04/2026
by Mehedy Hasan Ador
Question Details
At a scaling startup: "We create a new DB connection per request. Under load we get 'connection refused' errors."
Suggested Solution
Without Pooling
100 requests → 100 connections → 50ms each to establish → DB max 100 → request 101 failsWith Pool
Startup: create 20 connections. Request: borrow (0ms) → query → return. All 100 requests share 20 connections.// Prisma built-in pooling via URL
DATABASEURL="postgresql://...?connectionlimit=20&pooltimeout=10"
Singleton pattern (prevent multiple pools in dev)
const globalForPrisma = globalThis as unknown as { prisma: PrismaClient };
export const prisma = globalForPrisma.prisma || new PrismaClient();
if (process.env.NODEENV !== "production") globalForPrisma.prisma = prisma;
Pool size guideline: CPU cores × 2 + disk spindles. Typical: 10-30.