What is the N+1 Problem in GraphQL?

A crash course on a surprisingly common problem

Mike Cronin
The Marcy Lab School
3 min readJun 27, 2019

--

Once you get beyond the basics of GraphQL, you’ll likely hear people talk about the “N+1 problem.” This might seem scary, it does sound like O(N) notation, which is usually the last thing you hear before your whiteboard interview implodes. But, rest assured this is a simple concept hiding behind a computer science-y name.

The Situation in Question

Let’s say I have a DB of authors and their books, a simple “has many” relationship. Now, I want to get all my authors, and all their books. In REST, you’d make a route that uses your ORM of choice to do something along the lines of:

Under the hood, it would execute 2 queries: one to get all the authors, and one to get all their books. To use pseudo SQL it would be like:

2 queries. Boom. Done. Since the ORM gets all the ids from the first query, matching all the relationships is easy with the second.

--

--

Mike Cronin
The Marcy Lab School

I’m Mostly Focused on JS and web development, but anything coding related is fair game