Skaidykite pagal raktą, kuris yra beveik kiekvienoje užklausoje ir tolygiai paskirsto apkrovą — dažniausiai hešuotą user_id — tada nuo pirmos dienos planuokite resharding ir cross-shard užklausas. 1 mlrd. naudotojų netilps ir neveiks viename mazge; skaidote eilutes per daug duomenų bazių ir nukreipiate kiekvieną užklausą į shard, kuriam ji priklauso.
┌──────────────┐
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
