3 ms·
NoSQL didn't support joins (it's much easier to get predictable performance from key lookups), was trivial to shard (because no joins), and supported the common
by barrkel 6y ago
NoSQL didn't support joins (it's much easier to get predictable performance from key lookups), was trivial to shard (because no joins), and supported the common B2C scaling pattern of small amounts of data on millions of users.
With SQL it's easy to write a badly performing query which does lots of inefficient joins in the DB. NoSQL doesn't give you as many tools to offload your computation so it lives in your app instead, where it's easier to scale out (i.e. throw money at the problem).
I'm not getting into schemas vs schemaless (e.g. the cost of migrations when you have billions of rows) or denormalization (e.g. stuffing joined entites into both ends of an association, ugh), etc., there are other pros and cons. But IMO the lack of compute offload is a positive feature of most NoSQL.
- jolux 6y agoBut you’re also offloading data integrity to your application, which can introduce significant latency if you don’t do it right.