What is the N+1 query problem, and why will an index not save you?
You fetch a list with one query, then loop over it issuing one more query per row — a hundred products becomes a hundred and one queries. Each individual query is fast and indexed, which is exactly why it hides: nothing is slow, there is just an enormous number of things. The cost is a network round trip and a query parse per row, and an index makes each one faster without changing the count.
The fixes are a join, or a second query with `WHERE id IN (…)` — one round trip instead of a hundred. In an ORM it is eager loading, and knowing the name of your ORM's flag is worth saying.