El particionado de una colección distribuye sus documentos entre varias particiones en el clúster de MongoDB. MongoDB utiliza la clave de partición que especificaste para determinar exactamente dónde pertenece cada documento. La elección de una clave de partición eficaz es fundamental para garantizar una distribución uniforme de los datos y el equilibrio de la carga de trabajo entre todas las particiones disponibles. Este enfoque se vuelve esencial cuando las colecciones crecen demasiado como para que una única partición las gestione eficientemente. Una vez particionada, MongoDB distribuye automáticamente la colección entre todas las particiones disponibles según la estrategia de particionamiento elegida.
Cuándo considerar el particionado
Deberías considerar el particionado de una colección cuando te aproximes a ciertos límites de recursos o umbrales de rendimiento.
Alta utilización de recursos
Si la colección el conjunto de trabajo cabe en la RAM, MongoDB sirve las queries desde la memoria, lo que ofrece los tiempos de respuesta más rápidos para las queries. Cuando el conjunto de trabajo supera la memoria disponible, las latencias de las consultas aumentan debido al aumento del acceso a disco. El particionado de una colección mejora el rendimiento de las queries al distribuir los datos entre varias particiones, donde cada partición mantiene sus propios índices de datos.
Tamaño de datos grande
Si tu colección contiene 3TB de datos o más, deberías considerar dividirla en fragmentos para optimizar el rendimiento.
Opciones de Distribución
Al sacar una colección en MongoDB, puedes elegir entre las siguientes opciones de distribución:
Opción | Descripción |
|---|---|
El particionado clasificado por rango utiliza uno o más campos de documentos para determinar la ubicación de los datos. Los datos con valores similares de la clave de partición se almacenan en la misma partición, optimizando las queries 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. | |
El particionado por zonas distribuye colecciones en un subconjunto específico de particiones y no en todo el clúster. Este enfoque es ideal cuando las colecciones superan la capacidad de una sola partición, pero requieren una ubicación estratégica, ya sea por la proximidad geográfica a los usuarios, la optimización para patrones de acceso distintos con hardware especializado, o el mantenimiento del cumplimiento normativo mediante el control de la ubicación de los datos. |
Comportamiento
Al fragmentar una colección, debe:
Elige una clave de partición. Usa la
analyzeShardKeycomando de base de datos para facilitar esta elección.Selecciona un método de partición:
clúster balanceador para la migración automática de datos
Redistribuir en partición para una redistribución completa