Shardujte podle klíče, který je přítomen téměř v každém dotazu a rozprostírá zátěž rovnoměrně — obvykle hashovaný user_id — a od prvního dne plánujte resharding a cross-shard dotazy. 1 miliarda uživatelů se nevejde ani nebude výkonná na jednom nodu; řádky rozdělíte přes mnoho databází a každý dotaz směrujete na shard, který ho vlastní.
┌──────────────┐
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
