The NoSQL wave of the 2010s pitched document and key-value stores as MySQL replacements — in practice, most applications are still better served by a relational database, with NoSQL solving specific, narrower problems well.
When MySQL (Relational) Is the Right Call
- Data has clear relationships and needs referential integrity (orders, customers, inventory)
- You need real transactions across multiple related writes
- Ad-hoc querying and reporting matter — SQL’s flexibility is hard to replicate in most NoSQL query languages
When NoSQL Genuinely Fits Better
- Document stores (MongoDB) — genuinely schema-flexible data, like varied user-generated content structures
- Key-value stores (Redis) — caching, session storage, rate limiting — simple lookups at extreme speed
- Wide-column stores (Cassandra) — massive write throughput across many nodes, at the cost of weaker consistency guarantees
Many production systems today use both — MySQL for the core transactional data model, Redis for caching and ephemeral state — rather than treating it as an either/or decision.