How do you optimize REST API performance — N+1 avoidance, sparse fieldsets, and response compression?
Answer
REST API performance optimization operates at multiple layers. N+1 query avoidance: use eager loading (SQL JOINs or ORM includes) when a list endpoint triggers per-item queries. For GET /posts that includes author data, load all posts then all authors in two queries instead of N+1. Sparse fieldsets (?fields=id,name): select only requested columns in SQL, skip serialization of omitted fields, reducing CPU and bandwidth. Response compression (gzip/brotli): enable at the reverse proxy layer — JSON compresses 70-90%. HTTP caching: set ETag and Cache-Control headers; responses served from CDN cache cost near-zero compute. Connection pooling: reuse database connections rather than creating new ones per request. Async processing: move expensive writes to background queues (Redis Queue, SQS), returning 202 immediately. Pagination: never return unbounded lists — enforce maximum page sizes. Database indexes: ensure all filter/sort columns are indexed. Response time budgeting: set p99 latency targets (e.g., 200ms) and measure per-endpoint with APM tools like Datadog or New Relic.
Previous
What is event-driven REST and when do you use webhooks vs SSE vs WebSockets?
Next
What does an API governance and design review process look like at scale?
More REST API Design Questions
View all →- Advanced What is the Richardson Maturity Model and what are its four levels?
- Advanced How do you decide between REST, GraphQL, and gRPC for a new API?
- Advanced What is consumer-driven contract testing with Pact?
- Advanced What are backward compatibility strategies and Postel's Law in REST API evolution?
- Advanced What is event-driven REST and when do you use webhooks vs SSE vs WebSockets?