Everyone wants to nail the "SQL vs NoSQL" question in interviews. It's one of those classic gotchas that interviewers (at least used to) love throwing at candidates, expecting some profound wisdom about database philosophy. The thing is, the world has changed pretty dramatically since this question became popular, and while it's still asked all the time, the right answers aren't what they used to be.
If you're still reciting the same talking points from 2015 about NoSQL being "for scale" and SQL being "for consistency," you're missing the bigger picture. Here's what's actually going on and how to talk about it without sounding like you learned databases from a Medium article.
A Quick History Lesson (Because Context Matters)
Back in the early 2010s, companies were hitting real walls with their relational databases. Facebook, Twitter, Amazon - they were all pushing MySQL and Oracle to their absolute limits and beyond. And remember, we're talking about machines with maybe 100x less capacity than what you can spin up on AWS today. Your laptop probably has more RAM than most production database servers had back then.
The fundamental issue was architectural. Relational databases were designed in an era when vertical scaling (bigger, beefier machines) was the norm. They gave you amazing features like complex queries, ACID transactions, foreign keys, and sophisticated query planners, but they assumed everything would run on a single node. When that node maxed out, you were stuck.
For the biggest players, this wasn't sustainable. They needed architectures that embraced horizontal scaling from day one. And everyone else was chasing along, assuming the problems of today for Amazon and Google would be their problems tomorrow. Enter the NoSQL movement: databases that sacrificed some traditional features for the ability to spread data across hundreds or thousands of machines.
This created a widespread (and mostly incorrect) association: NoSQL = scale, SQL = not scale. Suddenly everyone building a startup that might hit 100 users someday was architecting for Facebook-scale problems. It was like buying a semi-truck to commute to work because you might need to move apartments someday.
Amazon's internal efforts to migrate off a very expensive set of Oracle licenses to AWS tech took nearly a decade in an effort called "Rolling Stone". The services which were already experiencing pain were easy to transition, but the long tail of services which were actually getting utility of their Oracle databases (think accounting systems, HR, etc) were much harder to migrate.
The industry wasted enormous amounts of time and money building "infinitely scalable architectures" for products that would have been perfectly happy with a single Postgres instance for their entire lifetime. It wasn't completely for naught, there are a bunch of useful and powerful technologies that are now in the market! But ... we learned some things along the way.
Where We Are Today
The database landscape in 2025 looks nothing like it did in 2010. The "NoSQL" umbrella now covers an incredible variety of specialized tools which now have been production-hardened over the last decade:
Document stores (MongoDB,
DynamoDB) for flexible schemas
Wide-column databases (
Cassandra, HBase) for massive write throughput
Graph databases (Neo4j, Neptune) for relationship-heavy data
Time series databases (InfluxDB, TimescaleDB) for metrics and events
Full-text search engines (
Elasticsearch, Typesense) for... well, search
Vector databases (Pinecone, Weaviate) for AI/ML embeddings
Key-value stores (
Redis, Memcached) for caching and simple lookups
Each serves a specific use case where traditional relational databases have struggled. But SQL databases haven't been sitting still.
Postgres in particular has been on an absolute tear, adding features that let it compete in many of these specialized areas:
JSONB support that rivals document stores
Full-text search that's good enough for many applications
Time-series extensions that handle metrics workloads
Even vector similarity search for AI applications
Modern SQL databases running on modern hardware can handle workloads that would have required exotic NoSQL solutions just a few years ago. A single
Postgres instance on a decent AWS box can handle millions of requests per day without breaking a sweat.
Despite all the advances in database technology, some fundamental challenges remain unchanged. The way you structure and lay out your data still has a massive impact on performance - you can't just throw data into tables randomly and expect good results. Every schema decision, from column choices to indexing strategies, needs careful consideration to support your read and write patterns efficiently. And while cloud providers have made horizontal scaling more accessible, it's still one of the toughest problems in database architecture, with solutions like
Amazon Aurora's DSQL making progress but not fully solving the underlying complexity.
The reality is that different access patterns continue to demand different approaches to data storage and retrieval. A write-heavy time series workload has fundamentally different needs than an OLTP (online transaction processing) system handling complex transactions, or an analytics database running large aggregation queries. While modern databases are more flexible than ever, there's still no single storage engine that's optimal for every use case. The physics of how data moves through systems means we'll likely always need specialized solutions for specialized problems.
What This Means for Your Interview
When the SQL vs NoSQL question comes up, here's how to not sound like you're reading from a 2015 blog post:
First, probe for actual requirements. Don't immediately jump to NoSQL just because the problem mentions "scale." Ask about:
Expected data volume (not just "lots" - actual numbers)
Read/write patterns and ratios
Query complexity requirements
Consistency requirements
Not sure what modern hardware is capable of? Check out our
Numbers to Know for some ballpark figures.
If scale isn't genuinely massive, lean toward SQL. A well-tuned
Postgres or MySQL instance gives you:
Flexible querying without having to denormalize everything
ACID transactions that actually work
A mature ecosystem of tools and libraries
Engineers who actually know how to use it properly
Remember, even Uber runs massive parts of their infrastructure on MySQL. If it's good enough for them at their scale, it's probably good enough for whatever you're designing. And you'll have a head start on problems like
dealing with contention which are incredibly common in system design interviews and easiest to solve with proper transaction support.
If scale IS a legitimate concern, then you need to get specific about your access patterns:
Full-text search across millions of documents?
Elasticsearch might make sense
Simple key-value lookups at extreme scale?
Redis or Memcached
The key is matching the database to the specific problem, not just reaching for MongoDB because it's "web scale."
Watch out for outdated interviewers. Some interviewers are still living in 2012 and expect you to enthusiastically embrace NoSQL for everything. If you get pushback on suggesting SQL for reasonable use cases, that tells you something about the company's technical culture. Make your case based on modern realities (this will impress some interviewers!), but be careful about it turning into a philosophical debate. If you've spent more than 20 seconds making your case and they're still stuck in their ways, move on.
Be Wary of the False Dichotomy
The dirty secret about the SQL vs NoSQL debate is that it's mostly a false dichotomy. Modern applications often use both, choosing the right tool for each job:
Redis for caching and sessions
Maybe
DynamoDB for specific high-volume write patterns
Our
Ticketmaster problem breakdown is a great example of this polyglot persistence approach which is way more common than pure SQL or pure NoSQL architectures.
The even dirtier secret? For 95% of applications, a boring SQL database with some caching is the right answer. It's not exciting, it won't impress anyone at conferences, but it will actually work and your team will thank you for not making their oncall "exciting" and having them learn five different query languages.
The Bottom Line
The SQL vs NoSQL question isn't really about the technology anymore and more often it's framed as "why X database?". To answer this, you need to understand:
Modern database capabilities and limitations
How to match technology choices to actual requirements
The operational costs of complexity
When to be boring and when to be innovative
Show that you can think beyond "NoSQL for scale, SQL for transactions" and you'll already be ahead of most candidates. Demonstrate that you understand the tradeoffs (and not just technical but operational and organizational) and you'll nail this question every time.
Just please, for the love of all that is holy, don't start your answer with "Well, it depends." We all know it depends. Show them HOW it depends, and you'll stand out from everyone else giving the same canned response.
Your account is free and you can post anonymously if you choose.