Fragmenta por una clave que esté presente en casi todas las queries y reparta la carga de forma uniforme — normalmente un user_id hasheado — y planifica el resharding y las queries cross-shard desde el día uno. 1B de usuarios no caben ni rinden en un solo nodo; divides las filas entre muchas bases de datos y enrutas cada query al shard que la posee.
┌──────────────┐
Request ─▶ Router/│ shard_of(key)│─▶ Shard 0 (users 0–…)
Proxy └──────────────┘ Shard 1
(Vitess) │ Shard 2
└─────────▶ Shard N ← each = its own primary+replicas
Directory/lookup table (which key → which shard) ── for range or resharding
