Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Eliminar um índice de chave de fragmento com hash

Nesta página

  • Sobre esta tarefa
  • Passos
  • Saiba mais

A partir do MongoDB 5.0.22, você pode eliminar o índice de uma hashed shard key.

Isso pode acelerar a inserção de dados para collection fragmentadas com uma chave de fragmento com hash. Ele também pode acelerar a ingestão de dados ao usar mongosync.

Eliminar um índice desnecessário pode acelerar operações CRUD. Cada operação CRUD deve atualizar todos os índices relacionados a um documento. Remover um índice pode aumentar a velocidade de todas as operações CRUD.

Quando você descarta uma chave de fragmento com hash, o servidor desabilita o balanceamento para essa collection e exclui a collection de futuras rodadas de balanceamento. Para incluir a collection nas rodadas de balanceamento mais uma vez, você deve recriar o índice da chave de fragmento.

1

Execute o seguinte comando para parar o balanceador:

sh.stopBalancer()

Você só pode executar sh.stopBalancer() em mongos. sh.stopBalancer() produz um erro se for executado em mongod.

2

Execute o seguinte comando para confirmar que nenhum documento órfão permanece:

db.runCommand(
{
cleanupOrphaned: "<database>.<collection>"
}
)

cleanupOrphaned retorna 1 ou 0.

Um valor de 1 indica que:

  • Nenhum documento órfão permanece no namespace cleanupOrphaned no fragmento

  • A collection referenciada no namespace cleanupOrphaned não está fragmentada

Um valor de 0 indica que ocorreu um erro.

Repita esta etapa até que o comando retorne 1.

3

Execute o seguinte comando para eliminar o índice:

db.collection.dropIndex("<index name>")
4

Execute o seguinte comando para reiniciar o balanceador no cluster:

sh.startBalancer()
  • Fragmentação em hash

  • Balanceador de cluster fragmentado

  • db.collection.dropIndex()

  • sh.stopBalancer()

  • sh.startBalancer()

  • sh.getBalancerState()

Voltar

Limpar

Próximo

Referência