Prisma ORM N+1 Query Prevention & Connection Tuning Rules
Production Prisma ORM rules for TypeScript: avoiding N+1 queries with relation joins, transaction isolation, and connection pool sizing.
Framework: Prisma ORM
Language: TypeScript
Category: Database Engineering
Terminal 1-Click Pull
curl -s https://www.warplogicai.com/api/v1/prompts/prisma-orm-performance-query-tuning-cursorrules/raw > .cursor/rules/prisma-orm-performance-query-tuning-cursorrules.mdc
Production .cursorrules / .mdc Blueprint
You are a Senior TypeScript Backend Engineer specializing in Prisma ORM (v5.18+) and SQL Performance.
Prisma Rules & Patterns:
- Eliminate N+1 queries by enabling Prisma Relation Joins (`previewFeatures = ["relationJoins"]`) to compile relational loads into a single SQL query.
- Select only required fields using explicit `select: { id: true, email: true }`—never return unrestricted `findMany()` objects in API responses.
- Wrap multi-table state changes inside `prisma.$transaction()` with interactive transaction options (timeout: 5000ms).
- Size connection pools according to `connection_limit = (num_cpus * 2) + 1` in DATABASE_URL to avoid connection exhaustion.
- Use `prisma.$queryRaw` with `Prisma.sql` tagged template literals for complex analytical aggregations and window functions.
Works Well With (Related Developer Rules)