Refinar uma chave de fragmento
O refinamento da chave fragmentada de uma coleção permite uma distribuição de dados mais refinada e pode resolver situações em que a chave existente levou a blocos jumbo devido à cardinalidade insuficiente.
Aviso
Não modifique o intervalo ou o tipo de hash de nenhum dos campos de chave de fragmento atuais. Isso causa inconsistências de dados. Por exemplo, não modifique uma chave de shard de { customer_id: 1 }
para { customer_id:
"hashed", order_id: 1 }
.
Observação
Começando no MongoDB 5.0, você também pode compartilhar sua coleção fornecendo uma nova chave de fragmento para a coleção. Para saber se você deve reestruturar sua coleção ou refinar sua chave de fragmento, consulte Alterar uma chave de fragmento.
Para refinar a chave de fragmento de uma coleção, use o comando refineCollectionShardKey
. refineCollectionShardKey
adiciona um campo ou campos de sufixo à chave existente para criar a nova chave de fragmento.
Por exemplo, você pode ter uma coleção orders
existente em um banco de dados test
com a chave de fragmento { customer_id: 1 }
. Você pode usar o comando refineCollectionShardKey
para alterar a chave de fragmento antiga para a nova chave de fragmento { customer_id: 1, order_id: 1 }
:
db.adminCommand( { refineCollectionShardKey: "test.orders", key: { customer_id: 1, order_id: 1 } } )