Shard mengikut key yang hadir dalam hampir setiap query dan menyebarkan beban secara sekata — biasanya user_id yang di-hash — kemudian rancang untuk resharding dan query rentas shard dari hari pertama. 1B pengguna tidak akan muat atau berprestasi pada satu node; anda memecahkan baris merentas banyak database dan menghalakan setiap query ke shard yang memilikinya.
┌──────────────┐
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
