The Scaling Decision Tree
Read caching (cheapest): Redis/Memcached layer. Cost: $5-20K implementation + $500-2K/month infrastructure. Handles: 5-10x read scale. Try this first.
Read replicas: Cost: $10-30K setup + $500-3K/month per replica. Handles: 10-50x read scale.
Sharding: Cost: $100K-500K implementation. Handles: 100x+ scale. But adds permanent operational complexity. Only shard when other options are exhausted.
Rewrite/migration: Cost: $200K-1M+. Consider only when the current database is fundamentally wrong for the workload.