Sharding particiona dados horizontalmente. Escala além de um servidor. Complexo mas necessário para bilhões de rows.
Carregando
Sharding particiona dados horizontalmente. Escala além de um servidor. Complexo mas necessário para bilhões de rows.
Sharding particiona dados horizontalmente. Escala além de um servidor. Complexo mas necessário para bilhões de rows.
Column para particionar. user_id, tenant_id, geo_region. Escolha afeta distribuição e queries.
Range: user_id 1-1M → shard1. Hash: hash(user_id) % N. Geo: region = "US" → shard_us.
Proxy direciona queries ao shard correto. Vitess, Citus, custom. App não sabe de sharding.
JOIN entre shards: difícil. Agregações: scatter-gather. Denormalize para evitar.
• Shard apenas quando necessário (>10TB)
• Escolha shard key cuidadosamente
• Evite cross-shard queries
• Monitor shard distribution
• Rebalance shards periodicamente
• Test failover
• Shard muito cedo (over-engineering)
• Shard key errada (hot shards)
• Não planejar cross-shard queries
• Não monitorar distribuição
• Rebalancing manual (automatize)
Quando usar cada um