En la mayoría de las situaciones, un Un clúster fragmentado creará, dividirá y distribuirá fragmentos automáticamente sin intervención del usuario. Sin embargo, en algunos casos, MongoDB no puede crear suficientes fragmentos ni distribuir datos con la velocidad suficiente para soportar el rendimiento requerido.
Por ejemplo, si desea ingresar un gran volumen de datos en un clúster que no esté equilibrado, o si la ingestión de datos resulta en un desequilibrio, como ocurre con las claves de fragmento que aumentan o disminuyen monótonamente. La pre-división de los fragmentos de una colección particionada vacía puede ayudar con el rendimiento en estos casos.
Alternativamente, al definir las zonas y rangos de zonas antes de fragmentar una colección vacía o no existente, la operación de recopilación de la partición crea fragmentos para los rangos de zonas 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. Para obtener más información, consulte Colección vacía.
Advertencia
Solo fragmentos pre-divididos para una colección vacía. La división manual de fragmentos en una colección poblada puede dar lugar a rangos y tamaños de fragmentos impredecibles, además de un comportamiento de balanceo ineficientes o ineficaces.
Para dividir manualmente fragmentos vacíos, puedes ejecutar el split comando:
Ejemplo
Para crear fragmentos para documentos en la colección myapp.users utilizando el campo email como clave de partición, utilice la siguiente operación en mongosh:
for ( var x=97; x<97+26; x++ ){ for ( var y=97; y<97+26; y+=6 ) { var prefix = String.fromCharCode(x) + String.fromCharCode(y); db.adminCommand( { split: "myapp.users", middle: { email : prefix } } ); } }
Esto asume un tamaño de colección de 100 millones de documentos.
Para obtener información sobre los fragmentos iniciales creados y distribuidos por el comando de particionado, consulte Colección vacía.
Para más información sobre el balanceador y la distribución automática de fragmentos entre particiones, consulta Balanceador de clúster y Migración de fragmento.
Para obtener información sobre migrar manualmente fragmentos, consulta Migrar fragmentos en un clúster fragmentado.