Database Scaling: From 100K to 10M Users
How we scaled PostgreSQL to handle 10 million users with read replicas, connection pooling, and query optimization.
At 100K users, a single PostgreSQL database works fine.
At 10M users? You need read replicas, connection pooling, and sharding.
The Scaling Journey
Stage 1: Single Database (0-100K users)
Setup: AWS RDS db.t3.medium
Cost: $50/month
Performance: 200ms avg query time
Stage 2: Read Replicas (100K-1M users)
Setup: 1 primary (writes) + 2 replicas (reads)
Cost: $200/month
Performance: 50ms avg query time
Stage 3: Connection Pooling (1M-5M users)
Setup: RDS Proxy + read replicas
Cost: $350/month
Performance: 30ms avg query time
Stage 4: Sharding (5M-10M+ users)
Setup: 4 shards (by user_id hash)
Cost: $1,200/month
Performance: 20ms avg query time
Read Replicas
// Write to primary
await db.primary.query('INSERT INTO users ...');
// Read from replica
await db.replica.query('SELECT * FROM users ...');
Result: 80% of queries hit replicas, not primary.
Connection Pooling
Problem: Each Lambda creates 1 DB connection. 1,000 concurrent Lambdas = 1,000 connections = PostgreSQL crashes.
Solution: RDS Proxy reuses connections.
const pool = new Pool({
host: 'rds-proxy.amazonaws.com',
max: 100 // Max connections
});
Query Optimization
Slow query (2.4s):
SELECT * FROM orders WHERE user_id = 123;
Fast query (18ms):
CREATE INDEX idx_user_orders ON orders(user_id);
SELECT * FROM orders WHERE user_id = 123;
Indexes matter!
Sharding
Partition data across multiple databases:
function getShardForUser(userId) {
return userId % 4; // 4 shards
}
const shard = getShardForUser(userId);
await dbShards[shard].query('SELECT * FROM users ...');
Trade-off: Cross-shard queries are expensive.
Want to scale your database?
Get Expert Help
Ready to Build Something?
Let's discuss your next project. Mobile apps, AI integration, or custom development.
Written by AJ Patatanian
Senior full-stack engineer with expertise in React Native, AI/ML, and cloud architecture. Building production apps at SERA Industries.
More articles →Continue Reading
Serverless Architecture: AWS Lambda at Scale
How we handle 10M requests/day with AWS Lambda while keeping costs under $500/month. Optimization strategies for serverless computing.
Building the Future: Cross-Platform Development and AI Integration
From mobile gaming to enterprise security systems, explore how modern development patterns, AI integration, and cloud-native architecture are transforming software delivery. Real insights from building production apps.