Eliminar um índice de chave de fragmento com hash
Nesta página
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
.
Sobre esta tarefa
Eliminar um índice desnecessário pode acelerar operações CRUD. Cada operação CRUD precisa 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.
Importante
Você só deve descartar uma chave de fragmento com hash de uma collection se houver um índice não hasheado de suporte na chave de shard. Se um índice sem hash de suporte não existir na chave de fragmento, as queries filtradas pela chave de fragmento executarão uma verificação de collection . Para ver quais índices existem em uma coleção, use db.collection.getIndexes()
.
Passos
Confirme se não há documento órfão em sua collection
Aviso
Pular esta etapa faz com que relate uma contagem incorreta de documento órfão e afete as operações de balanceamento se o índice for adicionado $collStats
novamente.
Execute o seguinte comando no primário para cada fragmento no mongod
cluster:
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 fragmentoA collection referenciada no namespace
cleanupOrphaned
não está fragmentada
Um valor de 0
indica que ocorreu um erro.
Repita esta etapa em cada primário no mongod
cluster.