Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Fragmentação com intervalos

A fragmentação baseada em intervalo envolve a divisão de dados em intervalos contíguos determinados pelos valores de chave de shard. Nesse modelo, os documentos com valores de chave de shard "próximos" provavelmente estarão no mesmo chunk ou shard. Isso permite queries eficientes onde se lê documentos de destino dentro de um intervalo contíguo. No entanto, o desempenho de leitura e gravação pode diminuir com uma seleção de uma chave de shard ruim. Consulte Seleção de chave de shard.

Diagrama do espaço de valor da chave de fragmentação segmentado em intervalos ou blocos.

A fragmentação baseada em faixas é a metodologia de fragmentação padrão se nenhuma outra opção, como as necessárias para a fragmentação com hash ou zonas, estiver configurada.

A fragmentação com intervalos é mais eficiente quando a chave de shard exibe as seguintes características:

A imagem seguinte ilustra um cluster fragmentado utilizando o campo X como a chave de shard. Se os valores de X tiverem um intervalo grande, baixa frequência e mudarem em uma taxa não monotônica, a distribuição de inserções poderá ser semelhante à seguinte:

Diagrama da boa distribuição de chave de shard
clique para ampliar

Use o método sh.shardCollection(), especificando o namespace completo da collection e o índice de destino ou índice composto a ser usado como chave de shard.

sh.shardCollection( "database.collection", { <shard key> } )

Importante

Se você fragmentar uma collection preenchida, apenas um chunk será criado inicialmente. O balancer então migra as faixas desse chunk, se necessário, de acordo com a faixa de intervalo configurada.

Se você fragmentar uma collection vazia:

  • Sem zonas e faixas de zona especificadas para a collection vazia ou inexistente:

    • A operação de fragmentação cria um único chunk vazio para cobrir todo o intervalo dos valores de chave de shard.

    • Após a criação inicial do chunk, o balanceador migra o chunk inicial através dos shards, conforme apropriado, bem como gerencia a distribuição do chunk daqui para frente.

  • Com zonas e faixas de zonas especificadas para a collection vazia ou inexistente (disponível a partir do MongoDB 4.0.3):

    • A operação de fragmentação cria chunks vazios para as faixas de zonas definidas e chunks adicionais para cobrir toda a faixa de valores das chaves de shard e executa uma distribuição inicial de chunks com base nas faixas de zonas. A criação e distribuição inicial de chunks agiliza a configuração da fragmentação por zonas.

    • Após a distribuição inicial, o balancer passa a gerenciar a distribuição de chunks.

Dica

Veja também:

Para saber como distribuir um cluster fragmentado e implementar a fragmentação à distância, consulte Distribuir um cluster fragmentado.

← Fragmentação em hash