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
/ /

Inicia la desfragmentación de una colección particionada

Para empezar a desfragmentar una colección particionada, utiliza la configureCollectionBalancing comando con la opción defragmentCollection establecida en true.

La fragmentación se produce cuando los datos de una colección particionada se dividen en una cantidad innecesariamente grande de fragmentos pequeños. Esto puede aumentar los tiempos de las operaciones CRUD que se ejecutan en esa colección. La desfragmentación reduce el número de fragmentos al combinar fragmentos más pequeños en otros más grandes, lo que resulta en tiempos de operación CRUD más bajos.

Si los tiempos de operación CRUD son aceptables, no es necesario desfragmentar las colecciones.

La siguiente tabla resume la información de desfragmentación para varias versiones de MongoDB.

Versión de MongoDB
Descripción

MongoDB 7.0 y versiones posteriores

Los fragmentos se combinan automáticamente. Las mejoras de rendimiento derivadas de la desfragmentación de una colección en MongoDB 7.0 son menores en comparación con MongoDB 6.0. Normalmente, no necesitas desfragmentar colecciones a partir de MongoDB 7.0.

MongoDB 6.0 y versiones anteriores a 7.0

Desfragmente las colecciones solo si experimenta retrasos en las operaciones CRUD cuando el balanceador migra fragmentos o se inicia un nodo.

A partir de MongoDB 6.0, un alto tráfico de escritura no debería causar fragmentación. Las migraciones de fragmentos causan fragmentación.

Anterior a MongoDB 6.0

Desfrágmente las colecciones solo si experimenta tiempos más largos de operaciones CRUD durante las actualizaciones de metadatos. Para las versiones de MongoDB anteriores a la 6.0, una colección particionada se fragmenta cuando el tamaño de la colección crece significativamente debido a múltiples operaciones de inserción o actualización.

El procedimiento en esta tarea utiliza una colección particionada de ejemplo llamada ordersShardedCollection en una base de datos llamada test.

Puedes usar tu propia colección particionada y base de datos en el procedimiento.

Conecta mongos.

1

Ejecuta:

db.adminCommand(
{
configureCollectionBalancing: "test.ordersShardedCollection",
defragmentCollection: true
}
)
2

Asegúrate de que ok esté 1 en la salida del comando, lo que indica que la ejecución del comando fue exitosa:

{
ok: 1,
'$clusterTime': {
clusterTime: Timestamp({ t: 1677616966, i: 8 }),
signature: {
hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0),
keyId: Long("0")
}
},
operationTime: Timestamp({ t: 1677616966, i: 8 })
}

Puedes supervisar el progreso de la desfragmentación de la colección. Para obtener más detalles, consulte Supervisión de la desfragmentación de una colección particionada.

  • Imprimir estado de la partición, consulte db.printShardingStatus()

  • Para recuperar detalles sobre el estado de las particiones, consulte sh.status()

  • Para ver los campos de la colección de estado de partición, consulte colección particionada

  • Ver instancias activas de mongos, ver Instancias activas de mongos

  • Supervise las particiones usando MongoDB Atlas, consulte Revisar los clústeres sharded

Volver

Desfragmentar colecciones particionadas

En esta página