கிட்டத்தட்ட ஒவ்வொரு query-இலும் இருந்து load-ஐ சமமாகப் பரப்பும் ஒரு key மூலம் shard செய்யுங்கள் — வழக்கமாக ஒரு hashed user_id — பிறகு முதல் நாளிலிருந்தே resharding மற்றும் cross-shard queries-க்குத் திட்டமிடுங்கள். 1B பயனர்கள் ஒரே 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
