Eliminar um índice de chave de fragmento com hash
Nesta página
A partir do MongoDB 7.0.3 (e 6.0.12 and 5.0.22), você pode descartar 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 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.
Passos
Confirme se não há documento órfão em sua collection
A partir do MongoDB 6.0.3, você pode executar uma agregação usando o estágio $shardedDataDistribution
para confirmar que não resta nenhum documento órfão:
db.aggregate([ { $shardedDataDistribution: {} }, { $match: { "ns": "<database>.<collection>" } } ])
$shardedDataDistribution
tem saída semelhante à seguinte:
[ { "ns": "test.names", "shards": [ { "shardName": "shard-1", "numOrphanedDocs": 0, "numOwnedDocuments": 6, "ownedSizeBytes": 366, "orphanedSizeBytes": 0 }, { "shardName": "shard-2", "numOrphanedDocs": 0, "numOwnedDocuments": 6, "ownedSizeBytes": 366, "orphanedSizeBytes": 0 } ] } ]
Certifique-se de que "numOrphanedDocs"
seja 0
para cada shard no cluster.