Al fragmentar una colección, sus documentos se distribuyen entre múltiples fragmentos en su clúster de MongoDB. MongoDB utiliza la clave de fragmento especificada para determinar con precisión la ubicación de cada documento. Elegir una clave de fragmento eficaz es fundamental para garantizar una distribución uniforme de los datos y el equilibrio de la carga de trabajo entre todos los fragmentos disponibles. Este enfoque se vuelve esencial cuando las colecciones crecen demasiado para que un solo fragmento pueda gestionarlas eficientemente. Una vez fragmentada, MongoDB distribuye automáticamente la colección entre todos los fragmentos disponibles según la estrategia de fragmentación elegida.
Cuándo considerar la fragmentación
Debería considerar fragmentar una colección cuando se acerque a ciertos límites de recursos o umbrales de rendimiento.
Alta utilización de recursos
Gran tamaño de datos
Si su colección contiene 3TB de datos o más, debería considerar fragmentarla para optimizar el rendimiento.
Opciones de distribución
Al fragmentar una colección en MongoDB, puede elegir entre las siguientes opciones de distribución:
Opción | Descripción |
|---|---|
La fragmentación por rangos utiliza uno o más campos de documento para determinar la ubicación de los datos. Los datos con valores de clave de fragmento similares se almacenan en el mismo fragmento, lo que optimiza las consultas basadas en rangos. Este enfoque funciona mejor cuando los patrones de acceso incluyen operaciones de rango. | |
El particionado encriptada calcula un valor hash desde tu campo especificado y distribuye datos aleatoriamente entre las particiones. Si bien es útil para la escalabilidad de la escritura, este enfoque puede impactar el rendimiento de las consultas basadas en rangos, ya que los datos lógicamente adyacentes pueden residir en diferentes particiones. | |
La fragmentación por zonas distribuye las colecciones entre un subconjunto específico de fragmentos en lugar de por todo el clúster. Este enfoque es ideal cuando las colecciones superan la capacidad de un solo fragmento, pero requieren una ubicación estratégica, ya sea por proximidad geográfica a los usuarios, para optimizar patrones de acceso específicos con hardware especializado o para garantizar el cumplimiento normativo mediante el control de la ubicación de los datos. |
Comportamiento
Al fragmentar una colección, debes:
Elija una clave de fragmento. Utilice el
analyzeShardKeycomando de base de datos para facilitar esta elección.Seleccione un método de fragmentación:
Balanceador de clúster fragmentado para la migración automática de datos
Redistribuir en partición para una redistribución completa