Two Ways to Grow
When a database outgrows its hardware, you have two fundamental choices.
Vertical scaling (scaling up) means giving one machine more resources: more CPU cores, more RAM, faster disks. It is simple because the application keeps talking to a single node and all data stays in one place. Transactions and joins work exactly as before.
Horizontal scaling (scaling out) means spreading load across many machines. You add nodes rather than enlarging one. This unlocks capacity far beyond any single server, but it forces hard questions about where data lives and how nodes coordinate.
Tradeoffs
- Vertical is easy but has a ceiling. The biggest server still has limits, and big machines cost more per unit of power.
- Vertical is also a single point of failure. One box down means everything down.
- Horizontal scales almost without bound and tolerates node failure, but adds network hops, partial failures, and consistency challenges.
Most teams start vertical because it is cheap to operate, then move horizontal once one machine can no longer hold the working set or serve peak traffic. The shift is rarely free: it usually means sharding, replication, or both.
Key idea
Vertical scaling grows one machine and is simple but capped; horizontal scaling adds machines for near unbounded capacity at the cost of coordination.