Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Administración

Descartar un índice de clave de partición con hash

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.

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().

1

Ejecuta el siguiente comando para detener el balanceador:

sh.stopBalancer()

Solo puedes ejecutar sh.stopBalancer() en mongos. sh.stopBalancer() produce un error si se ejecuta en mongod.

2

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 cleanupOrphaned en la partición

  • La colección referenciada en el namespace cleanupOrphaned no está particionada

Un valor de 0 indica que ha ocurrido un error.

Repite este paso en cada mongod principal del clúster.

3

Ejecute el siguiente comando para descartar el índice:

db.collection.dropIndex("<index name>")
4

Ejecute el siguiente comando para reiniciar el balanceador en el clúster:

sh.startBalancer()

Volver

Levantadora grande clara

En esta página