Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Menu Docs
Página inicial do Docs
/ /

Chaves de fragmentação

A chave do fragmento é um único campo indexado ou vários campos cobertos por um índice composto que determina a distribuição dos documentos da coleção entre os fragmentos do cluster. Para obter detalhes, consulte Índices de chave de fragmento.

O MongoDB divide a extensão de valores de chaves de fragmentação (ou valores de chaves de fragmentação com hash) em intervalos que não se sobrepõem de valores de chaves de fragmentação (ou valores de chaves de fragmentação com hash). Cada intervalo está associado a um bloco, e o MongoDB tenta distribuir os blocos uniformemente entre os fragmentos no cluster.

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

Você pode usar o método mongosh sh.shardCollection() para fragmentar uma coleção. Para fragmentar uma collection, você deve especificar o namespace completo da collection que você deseja fragmentar e a chave de fragmento.

sh.shardCollection(<namespace>, <key>) // Optional parameters omitted

namespace

Especifique o namespace completo da collection que você quer fazer o shard ("<database>.<collection>").

key

Especifique um documento { <shard key field1>: <1|"hashed">, ... } onde

Para ver mais informações sobre o método de fragmentação, consulte sh.shardCollection().

A escolha da chave de fragmento afeta a criação e a distribuição de dados entre os fragmentos disponíveis. A distribuição de dados afeta a eficiência e o desempenho das operações dentro do cluster fragmentado. A chave de fragmento ideal permite que o MongoDB distribua documents uniformemente em todo o cluster, ao mesmo tempo em que facilita padrões de query comuns.

Para obter detalhes, consulte a página Escolher uma chave de fragmento.

O MongoDB oferece duas maneiras de alterar uma chave de fragmento. Como alterar uma chave de fragmento:

Para obter detalhes, consulte a página Alterar uma chave de fragmento.

Você pode alterar o valor do campo chave do fragmento em qualquer document da sua collection, a menos que o campo chave do fragmento seja o campo _id. Isso pode afetar em qual fragmento o document vive.

Para obter detalhes, consulte Alterar o valor da chave de shard de um documento.

É possível que os documentos em sua coleção não tenham campos especificados por sua chave de fragmento. Por padrão, os **documents** que não têm **campos** especificados pela sua **chave de fragmento** vivem na mesma **faixa** de **parte** que as **chaves de fragmento** com valores nulos.

Para obter detalhes, consulte Definir campos de chave de fragmento ausentes.

Você pode usar o método db.printShardingStatus() para exibir a chave de fragmento usada para sua coleção.

Para obter detalhes, consulte Exibir uma chave de fragmento.

Alguns problemas comuns de chave de fragmento causados por uma chave de fragmento abaixo do ideal são:

  • Partes jumbo

  • Distribuição de carga irregular

  • Diminuição do desempenho da query

Para obter detalhes, consulte Solucionar problemas de chave de fragmento.

Voltar

Roteador (mongos)

Receber um selo de habilidade

Mestre "estratégias de fragmentação" de grátis!

Saiba mais

Nesta página