**Parent Topic**: [[Software/README]]
## The Four Levers
Florenzano frames relational-database scaling as four main moves: **caching**, **query optimization**, **buying new hardware**, and **sharding**. Each is valid, and together "expensive hardware, caching, and efficient queries can carry a single SQL database node quite a long way." But each has a ceiling.
## Where Each Hits a Wall
- **Caching** alleviates read load but adds application complexity and has an upper bound on how much it can reduce.
- **Query optimization** "can do only so much."
- **Buying hardware** is simple and proven, but expensive — and "once you've bought the best hardware, there's nothing more you can do."
- **Sharding** is the last resort, and "it's difficult to do, and difficult to do properly" (the geography example breaks down the moment a European user interacts with US-produced content — now every render queries both shards).
## Why It Motivates NoSQL
When all four levers are exhausted and you still have problems, the painful rearchitecture pushes some teams toward NoSQL. But the deeper question isn't always scale — see [[Match the Datastore to the Data Shape]]. This is the same caution as Schwartz's [[Dread Sharding]]: exhaust the cheaper levers first.
---
*Source: [[Web Operations]] (Allspaw & Robbins, O'Reilly 2010) — Ch 15 — Nonrelational Databases*