La clave de partición ideal permite a MongoDB distribuir documentos uniformemente en todo el clúster al mismo tiempo que facilita los patrones de query más comunes. Una clave de partición subóptima puede conducir a los siguientes problemas:
A continuación, puedes encontrar más información sobre los problemas comunes con las claves de fragmentación y cómo resolverlos.
fragmento jumbo
Si estás viendo fragmentos jumbo, ya sea que la cardinalidad de tu clave de partición sea insuficiente o la frecuencia de los valores de la clave de partición esté distribuida de manera desigual.
Para aumentar la cardinalidad de tu clave de partición o cambiar la distribución de los valores de tu clave de partición, puedes:
refina tu clave de partición añadiendo un campo o campos sufijo a la clave existente para aumentar la cardinalidad
Refragmenta tu colección usando una clave de partición diferente con mayor cardinalidad
Para aprender si se debe redistribuir la colección o refinar la clave de partición, se puede consultar Cambiar la clave de partición.
Para cambiar únicamente la distribución de los valores de tu clave de partición, también puedes considerar usar particionado encriptado para distribuir tus datos de manera más uniforme.
Para obtener consejo sobre cómo elegir una clave de partición, consulte Elegir una clave de partición.
Distribución desigual de la carga
Si tu clúster está experimentando una distribución desigual de la carga, verifica si tu clave de partición aumenta monotónicamente. Una clave de partición que es un campo monótonamente creciente conduce a una distribución desigual de lectura y escritura.
Considerar un orders colección que es particionado en un campo order_id. El order_id es un número entero que aumenta en uno con cada pedido.
Generalmente, los nuevos documentos se escriben en la misma partición y fragmento. La partición y el fragmento que reciben los guardados se denominan partición activa y fragmento activo. La partición activa cambia con el tiempo. Cuando los fragmentos se dividen, el fragmento caliente se mueve a otra partición para optimizar la distribución de datos.
Si es más probable que los usuarios interactúen con pedidos recientes, los cuales están todos en la misma partición, la partición que contiene los pedidos recientes recibirá la mayoría del tráfico.
Si tu clave de partición es monótonamente creciente, considera rehacer el sharding de tu colección. Para obtener consejos sobre cómo elegir una clave de partición, consulta Elegir una clave de particción.
Disminución del rendimiento de la query a lo largo del tiempo
Si notas un rendimiento disminuido de las consultas con el tiempo, es posible que tu clúster esté realizando consultas scatter-gather.
Para evaluar si tu clúster está realizando consultas scatter-gather, verifica si tus consultas más comunes incluyen la clave de partición.
Si incluyes la clave de partición en tus consultas, comprueba si tu clave de partición está encriptada. Con Hashed Sharding, los documentos no se almacenan en orden ascendente o descendente según el valor del campo clave de partición. La realización de queries basadas en rangos sobre el valor de la clave de partición en datos que no se almacenan en orden ascendente o descendente resulta en queries scatter-gather menos eficientes. Si las consultas basadas en rangos sobre la clave de partición son un patrón de acceso frecuente, considera reparar la fragmentación de la colección.
Si no incluyes la clave de partición en tus consultas más comunes, es posible que puedas aumentar el rendimiento al redistribuir tu colección. Para consultar consejos sobre cómo elegir una clave de partición, consulte Elija una clave de partición.