거의 모든 쿼리에 존재하고 부하를 고르게 분산하는 key로 샤딩하십시오 — 보통 hash된 user_id — 그리고 리샤딩(resharding)과 cross-shard 쿼리를 첫날부터 계획하십시오. 10억 사용자는 하나의 노드에 맞지도, 성능이 나지도 않습니다. row를 여러 데이터베이스에 나누고 각 쿼리를 그것을 소유한 shard로 라우팅합니다.
┌──────────────┐
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
