Indexes
Cada índice de una colección agrega cierta cantidad de sobrecarga al rendimiento de las operaciones de escritura.
Para cada uno Al escribir insertodeleteen una colección, MongoDB inserta o elimina las claves de documento correspondientes de cada índice de la colección de destino. Una operaciónupdatepuede generar actualizaciones en un subconjunto de índices de la colección, según las claves afectadas por la actualización.
Nota
MongoDB solo actualiza un índice disperso o parcial si los documentos involucrados en una operación de escritura están incluidos en el índice.
En general, las mejoras de rendimiento que proporcionan los índices en las operaciones de lectura compensan la penalización por inserción. Sin embargo, para optimizar el rendimiento de escritura siempre que sea posible, tenga cuidado al crear nuevos índices y evalúe los existentes para asegurarse de que sus consultas realmente los utilicen.
Para índices y consultas, consulte Optimización de consultas. Para más información sobre índices,consulte Índices y estrategias de indexación.
Registro en la bitácora
Para garantizar la durabilidad en caso de fallo, MongoDB utiliza el registro de escritura anticipada en un diario en disco. MongoDB escribe primero los cambios en memoria en los archivos de diario en disco. Si MongoDB finaliza o encuentra un error antes de confirmar los cambios en los archivos de datos, puede usar los archivos de diario para aplicar la operación de escritura a los archivos de datos.
Si bien la garantía de durabilidad proporcionada por el diario generalmente supera los costos de rendimiento de las operaciones de escritura adicionales, considere las siguientes interacciones entre el diario y el rendimiento:
Si el diario y el archivo de datos residen en el mismo dispositivo de bloques, es posible que ambos tengan que competir por un número finito de recursos de E/S disponibles. Mover el diario a un dispositivo independiente puede aumentar la capacidad de escritura.
Si las aplicaciones especifican preocupaciones de escritura
j optionque incluyen, disminuirá la duración entre escrituras de diario, lo que puede aumentar la carga de escrituramongodgeneral.El intervalo entre escrituras en el diario se puede configurar mediante la opción de tiempo
commitIntervalMsde ejecución. Reducir el intervalo entre confirmaciones del diario aumentará el número de operaciones de escritura, lo que puede limitar la capacidad de MongoDB para realizarlas. Aumentar el intervalo entre confirmaciones del diario puede reducir el número total de operaciones de escritura, pero también aumenta la probabilidad de que el diario no registre una operación de escritura en caso de fallo.
Para obtener información adicional sobre el registro en diario, consulte Registro en diario.