Sharde nach einem Key, der in fast jeder Query vorkommt und die Last gleichmäßig verteilt - meist eine gehashte user_id - und plane Resharding und Cross-Shard-Queries von Tag eins an ein. 1 Mrd. Nutzer passen oder performen nicht auf einem Node; du splittest Rows über viele Datenbanken und routest jede Query zu dem Shard, dem sie gehört.
┌──────────────┐
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
