**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*