A partir de MongoDB 7.0.3 (y 6.0.12 y 5.0.22), puedes descartar el índice de una clave de fragmentación encriptada.
Esto puede acelerar la inserción de datos para colecciones particionadas con una clave de partición con hash.
Acerca de esta tarea
Dejando caer un Un índice innecesario puede acelerar las operaciones CRUD. Cada operación CRUD debe actualizar todos los índices relacionados con un documento. Eliminar un índice puede aumentar la velocidad de todas las operaciones CRUD.
Importante
Solo debe eliminar un índice de clave de fragmento con hash de una colección si existe un índice sin hash compatible en la clave de fragmento. Si no existe un índice sin hash compatible en la clave de fragmento, las consultas que filtran por la clave de fragmento realizan una Análisis de colección. Para ver qué índices existen en una colección, utilice db.collection.getIndexes().
Considerations
Al eliminar un índice de clave de fragmento con hash, tenga en cuenta lo siguiente:
El servidor desactiva el equilibrio para tu colección y la excluye de futuras rondas de equilibrio. Para incluir la colección en futuras rondas de balanceo, recrea el índice de la clave de partición.
Al eliminar el índice de la clave de fragmento, el eliminador de rango no elimina los documentos huérfanos restantes en la colección. Debe confirmar que no existan documentos huérfanos en la colección antes de eliminar el índice de la clave de fragmento con hash. Consulte el procedimiento a continuación para confirmar que no haya documentos huérfanos en la colección.
Pasos
Confirme que no haya documentos huérfanos en su colección
A partir de MongoDB,6.0.3 puede ejecutar una agregación utilizando la etapa para confirmar que no queden documentos $shardedDataDistribution huérfanos:
db.aggregate([ { $shardedDataDistribution: {} }, { $match: { "ns": "<database>.<collection>" } } ])
$shardedDataDistribution tiene una salida similar a la siguiente:
[ { "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 } ] } ]
Asegúrese de que "numOrphanedDocs" sea 0 para cada fragmento del clúster.