A partir de MongoDB 5.0.22, puede descartar el índice para una clave de partición con hash.
Esto puede agilizar la inserción de datos para las colecciones particionadas con una clave de partición con hash. También puede acelerar la ingesta de datos cuando se utiliza
mongosync.
Acerca de esta tarea
Eliminando un índice innecesario puede acelerar las operaciones CRUD. Cada operación CRUD debe actualizar todos los índices relacionados con un documento. Remover un índice puede aumentar la velocidad de todas las operaciones CRUD.
Cuando descartas un índice de clave de partición con hash, el servidor deshabilita el balanceo para esa colección y excluye la colección de futuras rondas de balanceo. Para incluir la colección en las rondas de balanceo una vez más, debes recrear el índice de clave de partición.
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 escaneo de colección. Para ver qué índices existen en una colección, use db.collection.getIndexes().
Pasos
Confirme que no haya documentos huérfanos en su colección
Advertencia
Omitir este paso hará que $collStats reporte una cuenta incorrecta de documentos huérfanos y afectará las operaciones de balanceo si el índice se vuelve a añadir.
Ejecuta el siguiente comando en el mongod primario para cada partición en el clúster:
db.runCommand( { cleanupOrphaned: "<database>.<collection>" } )
cleanupOrphaned retorna 1 o 0.
Un valor de 1 indica que:
No quedan documentos huérfanos en el namespace
cleanupOrphaneden la particiónLa colección referenciada en el namespace
cleanupOrphanedno está particionada
Un valor de 0 indica que ha ocurrido un error.
Repite este paso en cada mongod principal del clúster.