# Sharding database: o que é e como escalar horizontalmente

> Sharding database é a técnica de dividir um banco de dados em partes menores chamadas shards, distribuídas em máquinas distintas para permitir escalabilidade horizontal. A abordagem aumenta a capacidade de processamento e armazenamento, mas exige atenção à consistência de dados e à complexidade de consultas que cruzam múltiplos shards.

*TNT Web · Apps e Software · 10 de setembro de 2026 · Jonas Ribaldo*

Sharding database é a técnica de dividir um banco de dados em partes menores, chamadas shards, distribuídas em máquinas diferentes. Isso permite escalar horizontalmente, mas exige cuidado com consistência e consultas entre shards. Veja quando vale a pena.

Sharding database é a prática de repartir um banco de dados em pedaços menores, os shards, e armazená-los em máquinas distintas. Cada shard contém uma fatia dos dados, como clientes de uma região ou pedidos de um período. Assim, em vez de sobrecarregar um único servidor, a carga se distribui. Essa é a base da escalabilidade horizontal, que adiciona máquinas em vez de turbinar uma só.

A ideia parece simples, mas a execução cobra seu preço. A escolha da chave de shard, a consistência entre as partes e a complexidade das consultas são desafios reais. Este guia explica o conceito, os critérios para adotá-lo e os riscos que ninguém deve ignorar.

## O que é sharding e por que ele é diferente de replicação?

Sharding é particionamento horizontal: os dados são divididos por linhas, não por colunas. Cada shard tem o mesmo esquema, mas guarda um subconjunto diferente. Já a replicação copia os mesmos dados para várias máquinas, geralmente para leitura e tolerância a falhas. São estratégias complementares. Um sistema pode ter shards replicados, mas o sharding em si resolve o limite de armazenamento e escrita de um único nó.

## Como o sharding permite escalar horizontalmente?

Ao distribuir os dados, cada máquina processa apenas uma fração das operações. Se um banco cresce além da capacidade de um servidor, o sharding permite adicionar novos shards e realocar parte dos dados. Isso aumenta a capacidade total de escrita e leitura. O ganho não é automático: depende de uma chave de shard que espalhe bem a carga. Uma chave ruim, como data de cadastro, pode concentrar todos os acessos recentes em um único shard.

## Quais são os principais desafios do sharding?

O primeiro é a consistência. Transações que afetam múltiplos shards exigem coordenação, o que adiciona latência e complexidade. O segundo são as consultas que precisam cruzar shards, como relatórios que somam vendas de todas as regiões. Sem planejamento, essas consultas se tornam lentas ou inviáveis. Há ainda a operação: rebalancear shards quando um cresce mais que os outros é um processo delicado.

## Quando vale a pena adotar sharding?

O sharding costuma ser indicado quando o volume de dados ou a taxa de escrita ultrapassam a capacidade de um único servidor, mesmo após otimizações e réplicas de leitura. É comum em sistemas com milhões de usuários ativos ou séries temporais massivas. Para a maioria das aplicações, começar com um banco bem indexado e réplicas resolve. Adotar sharding cedo demais adiciona complexidade sem retorno.

## Quais são os modelos mais comuns de sharding?

Três abordagens se destacam. O sharding por faixa (range) divide por intervalos de uma chave, como IDs de 1 a 1 milhão. O sharding por hash aplica uma função à chave e distribui os registros de forma mais uniforme. Já o sharding geográfico separa dados por região, o que ajuda a cumprir exigências de residência de dados. Cada modelo tem trade-offs entre simplicidade, equilíbrio e facilidade de consulta.

## Como escolher a chave de shard?

A chave ideal distribui as operações de forma equilibrada e evita consultas entre shards. Um bom candidato é o identificador do cliente, pois agrupa dados relacionados. Evite chaves com concentração previsível, como data ou status. Testar a distribuição com dados reais antes de migrar é essencial. Uma chave mal escolhida pode gerar hotspots e anular o ganho de escala.

## Sharding resolve todos os problemas de escala?

Não. O sharding ataca o limite de um único nó, mas não elimina gargalos de rede, latência entre shards ou a complexidade operacional. Em muitos casos, índices melhores, cache e réplicas de leitura resolvem antes. O sharding é uma ferramenta de última instância para quando as alternativas mais simples se esgotam.

## Resumo prático

Sharding database divide os dados em partes e as distribui em máquinas diferentes, permitindo escalar horizontalmente. Isso traz ganhos de capacidade, mas exige escolhas cuidadosas de chave, tratamento de consistência e aceitação de consultas mais complexas. Avalie alternativas antes de adotar.

## FAQ

### O que é um shard?

Um shard é uma partição horizontal de um banco de dados. Cada shard contém um subconjunto das linhas e reside em um servidor separado. Juntos, os shards formam o banco completo. A divisão pode seguir faixas, hash ou critérios geográficos, dependendo da necessidade.

### Qual a diferença entre sharding e particionamento?

Particionamento é o conceito geral de dividir dados; sharding é um tipo específico, em que as partições ficam em máquinas distintas. Todo sharding é um particionamento, mas nem todo particionamento é sharding. O particionamento pode ocorrer dentro de um único servidor.

### Sharding melhora a performance de leitura?

Pode melhorar, pois cada shard processa menos dados. Mas o ganho depende da distribuição das consultas. Se a maioria das leituras precisa consultar vários shards, a performance pode até piorar por causa da coordenação extra. O ideal é que a chave de shard alinhe-se ao padrão de acesso.

### Quais bancos de dados suportam sharding nativo?

Diversos sistemas oferecem suporte nativo ou por meio de extensões, como MongoDB, PostgreSQL com Citus, e soluções de nuvem. A escolha depende do ecossistema, do modelo de consistência desejado e da equipe. Avalie a maturidade da ferramenta antes de comprometer a arquitetura.

### Sharding é a mesma coisa que replicação?

Não. Replicação copia os mesmos dados para várias máquinas, geralmente para leitura e alta disponibilidade. Sharding divide os dados em partes distintas. As duas técnicas podem ser combinadas: cada shard pode ter réplicas para tolerância a falhas.

### Quando NÃO usar sharding?

Evite sharding se o volume de dados ainda cabe em um servidor otimizado, se as consultas são complexas e cruzam muitos dados, ou se a equipe não tem experiência com sistemas distribuídos. A complexidade operacional pode superar os benefícios. Prefira primeiro índices, cache e réplicas.

---

Fonte (canonical): https://tntweb.com.br/apps-e-software/sharding-database-o-que-e-e-como-escalar-horizontalmente/
