ایک ایسے key سے shard کریں جو تقریباً ہر query میں موجود ہو اور load کو یکساں پھیلائے — عموماً ایک hashed user_id — پھر پہلے دن سے resharding اور cross-shard queries کی منصوبہ بندی کریں۔ 1 ارب صارفین ایک node پر نہ آئیں گے نہ کارکردگی دکھائیں گے؛ آپ 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
