Shard theo một key có mặt trong gần như mọi query và trải tải đều — thường là user_id đã hash — rồi lên kế hoạch cho resharding và cross-shard query ngay từ ngày đầu. 1 tỷ user không vừa và không chạy nổi trên một node; bạn chia dòng ra nhiều database và route mỗi query tới shard sở hữu nó.
┌──────────────┐
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
