Back to Main
Learn System Design
Question Breakdowns
Advanced Topics
Get Premium
Patterns
Scaling Reads
Learn about how to scale reads in your system design interview.
Scaling Reads
The Problem
Consider an Instagram feed. When you open the app, you're immediately hit with dozens of photos, each requiring multiple database queries to fetch the image metadata, user information, like counts, and comment previews. That's potentially 100+ read operations just to load your feed. Meanwhile, you might only post one photo per day - a single write operation.
This imbalance is incredibly common. For every tweet posted, thousands of users read it. For every product uploaded to Amazon, hundreds browse it. Similarly, YouTube processes billions of video views daily but only millions of uploads. The standard read-to-write ratio starts at 10:1 but often reaches 100:1 or higher for content-heavy applications.
As the number of reads increase, your database will struggle under the load.
More often than not, this isn't a software problem you can debug your way out of - it's physics. CPU cores can only execute so many instructions per second, memory can only hold so much data, and disk I/O is bounded by the speed of spinning platters or SSD write cycles. When you hit these physical constraints, throwing more code at the problem won't help.
So, what is the solution? Let's break it down.
The Solution
Read scaling follows a natural progression from simple optimization to complex distributed systems.
- Optimize read performance within your database
- Scale your database horizontally
- Add external caching layers
Here's how each works.
Optimize Within Your Database
Indexing
Hardware Upgrades
Denormalization Strategies
Scale Your Database Horizontally
Read Replicas
Database Sharding
Add External Caching Layers
Application-Level Caching
CDN and Edge Caching
When to Use in Interviews
Common Interview Scenarios
When NOT to Use
Common Deep Dives
"What happens when your queries start taking longer as your dataset grows?"
"How do you handle millions of concurrent reads for the same cached data?"
"What happens when multiple requests try to rebuild an expired cache entry simultaneously?"
"How do you handle cache invalidation when data updates need to be immediately visible?"
Conclusion
Test Your Knowledge
Take a quick 15 question quiz to test what you've learned.

Schedule a mock interview
Meet with a FAANG senior+ engineer or manager and learn exactly what it takes to get the job.