Shardirajte po ključu koji je prisutan u gotovo svakom upitu i ravnomjerno raspoređuje opterećenje — obično hashirani user_id — zatim planirajte resharding i cross-shard upite od prvog dana. 1 milijarda korisnika neće stati ni raditi na jednom čvoru; podijelite retke preko mnogo baza i usmjerite svaki upit na shard koji ga posjeduje.
┌──────────────┐
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
