एक ऐसी key से shard करें जो लगभग हर query में मौजूद हो और load को समान रूप से फैलाए — आमतौर पर एक hashed user_id — फिर पहले दिन से resharding और cross-shard queries की योजना बनाएं। 1 अरब यूज़र्स एक node पर न समाएंगे न perform करेंगे; आप rows को कई databases में बांटते हैं और हर query को उस shard पर route करते हैं जो उसका मालिक है।
┌──────────────┐
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
