ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Menu Docs

Fragmentação com intervalos

A fragmentação baseada em intervalo envolve a divisão de dados em intervalos contíguos determinados pelos valores da chave de fragmento. Nesse modelo, os documentos com valores da chave de fragmento "próximos" provavelmente estarão na mesma parte ou fragmento. 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 má seleção da chave de fragmento. Consulte Seleção da chave de fragmento.

Diagram of the shard key value space segmented into smaller ranges or chunks.

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 fragmentada. 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:

Diagram of good shard key distribution
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.

Veja também:

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