4 ms·
So it's a classic N+1 query?
by paradite 8y ago
So it's a classic N+1 query?
- bsaul 8y agoNot really. N+1 is about « to many » relationships. You would need at least 2 collections to run into that problem. In sql equivalent, what happened would be more like doing a full table scan on each query instead of using an index ( and not even that, because pre-computing a total isn’t really like an index) This kind of « account balance » problems are typical of the problems where transactions are really useful. But also historically the kind of problem where nosql techs do a poor job ( they’re more built with « eventual consistency » in mind than atomic or transactional behaviors)
- alexpi 8y agoIt's more like (in good old RDBMS world) 'SELECT * FROM payments' and calculate sum on client vs 'SELECT SUM(amount) FROM payments WHERE some_id = ?' though they already had this sum precalculated
- jasonkester 8y agoThat would be more forgivable. This is: SELECT * FROM payments where paymentID = 1 SELECT * FROM payments where paymentID = 2 SELECT * FROM payments where paymentID = 3 ... SELECT * FROM payments where paymentID = 14986 Each of those in its own API request over the wire, then sum them on the client.