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 dos valores da chave de fragmentação (ou valores da chave de fragmentação com hash) em faixas que não se sobrepõem. Cada intervalo é associado a um parte, e o MongoDB tenta distribuir os partes uniformemente entre os fragmentos no cluster.
Fragmentar uma Coleção
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
| Especifique o namespace completo da collection que você quer fazer o shard ( |
| Especifique um documento
|
Para ver mais informações sobre o método de fragmentação, consulte sh.shardCollection().
Escolher uma chave de fragmentação
A escolha da chave de shard com hash afeta a criação e a distribuição de dados entre os shards disponíveis. A chave de fragmento ideal permite que o MongoDB distribua documentos uniformemente em todo o cluster, ao mesmo tempo em que facilita padrões de consulta comum.
Para obter detalhes, consulte a página Escolher uma chave de fragmento.
Alterar uma chave de fragmentação
Você pode alterar uma chave de shard com hash de duas maneiras:
Você pode refinar uma chave de fragmento adicionando campos à chave existente.
Você pode alterar uma chave de fragmento completamente e refragmentar uma coleção com a nova chave.
Para obter detalhes, consulte a página Alterar uma chave de fragmento.
Alterar valor do campo chave de fragmento de um document
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.
Definir campos de chave de fragmentação ausentes
Os documentos da sua coleção podem não conter os campos especificados pela sua chave de shard com hash. Por padrão, os documentos que não possuem os campos especificados pela sua chave de shard com hash ficam na mesma faixa de parte que as chaves de shard com hash com valores nulos.
Para obter detalhes, consulte Definir campos de chave de fragmento ausentes.
Exibir uma chave de fragmento
Use db.printShardingStatus() para exibir a chave de shard com hash usada para sua coleção.
Para obter detalhes, consulte Exibir uma chave de fragmento.
Solução de problemas
Os problemas comuns causados por uma chave de shard com hash 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.