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 poblada:
La operación de fragmentación crea los fragmentos iniciales para cubrir todo el rango de valores de la clave de fragmentación. El número de fragmentos creados depende del tamaño del fragmento configurado.
Después de la creación del fragmento inicial, el balanceador migra estos fragmentos iniciales a través de los fragmentos según corresponda y también administra la distribución de los fragmentos en el futuro.
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.