Skip to content

Comment on Eradicating N+1s: The Two-Phase Data Load and Render Pattern in Go

Comments

I've always been sort of fond of 1 + 1. It's too often the case that there's a popular query that doesn't even need the child data to function, and unless you have some elaborate caching mechanism it would be a shame to pay the full cost of the join or however you want to implement it.

Making one query that returns the base data and a second that pulls all of the associated data works often enough.

Then it's only when you need to pull M individual records and the associated data that might put you into M + 1 queries, if you can't work out client side grouping for some esoteric reason. But you've reduced the exponent of the fanout by 1, which can hold you for a long time. Years even.

Agreed. The N+1 problem is not as big as people make it out to be.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.