GraphQL N+1 Query Problem Solver & DataLoader Architecture
Eliminate disastrous GraphQL N+1 database queries using batching, caching, and Facebook's DataLoader pattern.
System Directive • Copy and Paste Below
Act as a GraphQL performance architect and backend database specialist. Diagnose and resolve the catastrophic N+1 query problem in the following GraphQL schema and resolver code. ### GRAPHQL CONTEXT: - Schema Definition (Entities & Nested Relationships): [SCHEMA_ENTITIES_AND_RELATIONS] - Current Resolver Implementation: ```typescript [PASTE_RESOLVER_CODE_HERE] ``` - Underlying Database ORM: [ORM_E_G_PRISMA_TYPEORM_SQL] - Number of Nested Records Fetched in Production: [TYPICAL_QUERY_SIZE] ### DELIVERABLES: 1. **The N+1 Query Mechanics Explained**: - Demonstrating why querying 50 parent records triggers 51 separate SQL queries and exhausts the database connection pool. 2. **DataLoader Implementation (Batching & Per-Request Caching)**: - Creating a typed DataLoader instance that batches individual IDs into a single `SELECT * FROM table WHERE id IN (...)` query. 3. **Preserving Order & Null Handling**: - Code pattern ensuring the returned array matches the exact order of the input keys (the #1 mistake developers make with DataLoader). 4. **Refactored GraphQL Resolvers**: - Clean, lightweight resolvers delegating data resolution to the DataLoader context. 5. **Verification & SQL Query Count Comparison**: - Showing before-vs-after SQL query logs demonstrating the drop from N+1 queries down to exactly 2 queries.
Customization & Placeholders
Paste your nested resolver code. The generated DataLoader implementation preserves exact array ordering and eliminates connection pool exhaustion.
Example Input Values
Entities: Authors -> Posts -> Comments, Code: Standard Prisma nested `findMany` inside field resolvers, ORM: Prisma, Query: 100 posts with authors.
Expected Output Structure
Typed DataLoader batch function, order preservation logic, refactored resolver code, and query count reduction proof.
Custom GraphQL & REST API Development
Qubenix engineers high-performance, scalable API layers optimized for low latency and zero unnecessary database strain.
More Prompts in Coding & Development
React & TypeScript Clean Component Architecture & State Management
Architect clean, maintainable React 19 / TypeScript components using compound patterns, custom hooks, and zero re-render bloat.
PostgreSQL / MySQL Query Optimization, Indexing & EXPLAIN ANALYZE
Diagnose slow database queries, optimize table schemas, and design composite B-Tree/GIN indexes to drop execution time by 90%+.
Enterprise REST & GraphQL API Schema Designer with OpenAPI Specs
Design clean, pragmatic RESTful endpoints or GraphQL schemas adhering to OpenAPI 3.1 standards, pagination, and status codes.