Fix N+1 query performance issues with Prisma

The N+1 problem occurs when your code makes one query to fetch a list, then N additional queries to fetch related data for each item. With Prisma, this often happens when accessing relations in loops without eager loading.

Error messages you might see

PrismaClientKnownRequestError: Too many database connections opened
Error: Connection pool timeout: Unable to acquire a connection from the pool

Why this happens in AI-generated code

1

Accessing relations without include or select

AI-generated code accesses Prisma relations in loops (e.g., user.posts in a forEach) without using include or select, triggering a separate query for each relation access.

2

Lazy loading relations in API responses

AI tools generate API handlers that serialize Prisma models with relations, not realizing that accessing each relation triggers an additional database query.

3

Nested loops with database calls

AI-generated code puts Prisma queries inside nested loops (for each order, for each item, fetch product), creating exponential query growth that overwhelms the connection pool.

How to fix it

1

Use include or select to eager load relations

Add include: { posts: true } or select with nested relations to your Prisma query to fetch all related data in a single query instead of N separate ones.

2

Use findMany with where-in instead of loops

Replace loops that query one record at a time with a single findMany query using a where: { id: { in: ids } } clause to batch the lookup.

3

Get professional help

Still stuck? Our engineers can optimize your database queries for performance. Visit /products to get started.

Related technologies

Can't fix it yourself?

Our code audit identifies this issue and dozens more. Get a prioritized fix list.

Security Scan

Black-box review of your public-facing app. No code access needed.

$19
  • OWASP Top 10 checks
  • SSL/TLS analysis
  • Security headers
  • Expert review within 24h
Get Started

Code Audit

In-depth review of your source code for security, quality, and best practices.

$19
  • Security vulnerabilities
  • Code quality review
  • Dependency audit
  • AI pattern analysis
Get Started
Best Value

Complete Bundle

Both scans in one package with cross-referenced findings.

$29$38
  • Everything in both products
  • Cross-referenced findings
  • Unified action plan
Get Started

100% credited toward any paid service. Start with an audit, then let us fix what we find.

Frequently asked questions

How do I detect N+1 queries in Prisma?

Enable Prisma query logging with `log: ['query']` in your PrismaClient constructor. Watch for repeated similar queries in your logs. Tools like prisma-query-log can format these for easier reading.

Does Prisma have a built-in solution for N+1?

Prisma uses a query engine that batches some queries automatically, but it doesn't solve all N+1 cases. You must explicitly use include, select, or findMany with in-filters for optimal performance.

Still stuck? We can fix it for you.

Send us your repo. We'll diagnose the issue and give you a fixed quote within 24 hours.

Tell Us About Your App