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 ingerir un gran volumen de datos en un clúster desequilibrado, o si la ingestión de datos provocará un desequilibrio, como en el caso de claves de fragmento que aumentan o disminuyen de forma monótona, la división previa de los fragmentos de una colección fragmentada vacía puede mejorar 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 predividir fragmentos para una colección vacía. Dividir fragmentos manualmente para una colección completa puede generar rangos y tamaños de fragmentos impredecibles, así como un comportamiento de balanceo ineficiente o ineficaz.
Para dividir fragmentos vacíos manualmente, puede ejecutar el comando split dominio:
Ejemplo
Para crear fragmentos para documentos en la myapp.users colección usando el email campo como clave de fragmento, utilice la siguiente operación mongosh en:
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 supone 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 fragmentación, consulte Colección vacía.
Para obtener información sobre el equilibrador y la distribución automática de fragmentos entre fragmentos, consulte Equilibrador de clúster y migración de fragmentos.
Para obtener información sobre cómo migrar fragmentos manualmente, consulte Migrar fragmentos en un clúster fragmentado.