La fragmentación basada en rangos implica dividir los datos en rangos contiguos determinados por los valores de la clave de fragmentación. En este modelo, es probable que los documentos con valores de clave de fragmentación "cercanos" se encuentren en el mismo... Fragmento o fragmento. Esto permite consultas eficientes que leen documentos de destino dentro de un rango contiguo. Sin embargo, el rendimiento de lectura y escritura puede disminuir si se selecciona una clave de fragmento incorrecta. Consulte Selección de clave de fragmento.
La fragmentación basada en rangos es la metodología de fragmentación predeterminada si no se configuran otras opciones,como las requeridas para la fragmentación en hash o las zonas.
Selección de Shard Key
La fragmentación a distancia es más eficiente cuando la clave de fragmentación muestra las siguientes características:
La siguiente imagen ilustra un clúster fragmentado que utiliza el campo X Como clave de fragmento. Si los valores de X tienen un rango amplio, baja frecuencia y cambian a un ritmo no monótono, la distribución de inserciones podría ser similar a la siguiente:
Fragmenta una colección
Utilice el método, especificando el espacio de nombres sh.shardCollection() completo de la colección y el índice de destino o índice compuesto que se utilizará como clave de fragmento.
sh.shardCollection( "database.collection", { <shard key> } )
Importante
A partir de MongoDB 5.0, puedes redistribuir una colección cambiando la clave de partición de una colección.
Para ajustar una clave de fragmentación, agrega un campo o campos de sufijo a la clave de fragmentación existente.
Fragmentar una colección poblada
Si fragmenta una colección completa, inicialmente solo se crea un fragmento. El balanceador migra los rangos de ese fragmento si es necesario, según el tamaño del rango configurado.
Fragmentar una colección vacía
Si fragmenta una colección vacía:
Sin zonas ni rangos de zonas especificados para la colección vacía o inexistente:
La operación de particionado crea un único fragmento vacío para cubrir todo el rango de valores de la clave de partición.
Tras la creación inicial del fragmento, el balanceador migra el fragmento inicial a través de las particiones según convenga, además de gestionar la distribución de fragmentos en adelante.
Con zonas y rangos de zonas especificados para colecciones vacías o inexistentes:
La operación de particionado crea fragmentos vacíos para los rangos de zona definidos, así como fragmentos adicionales para cubrir todo el rango de los valores de la clave de partición y realiza una distribución inicial de fragmentos basada en los rangos de zona. Esta creación y distribución inicial de fragmentos permite configurar más rápidamente el particionado de zona.
Después de la distribución inicial, el balanceador gestiona la distribución de fragmento en adelante.
Tip
Para aprender a implementar un clúster fragmentado e implementar la fragmentación por rango, consulte Implementar un clúster fragmentado autoadministrado.