Indexes
Cada índice en una colección añade cierta sobrecarga al rendimiento de las operaciones de escritura.
Para cada uno insert o delete para la operación de guardar en una colección, MongoDB inserta o elimina las claves de documentos correspondientes de cada índice en la colección de destino. Una update operación puede dar lugar a actualizaciones en un subconjunto de índices de la colección, dependiendo de las claves que se vean afectadas por la actualización.
Nota
En general, las mejoras de rendimiento que proporcionan los índices para las operaciones de lectura compensan la penalización por la inserción. Sin embargo, para optimizar el rendimiento de guardado cuando sea posible, debes tener cuidado al crear nuevos índices y evaluar los índices existentes para garantizar que tus queries realmente utilicen estos índices.
Para índices y consultas, consulte Optimización de consultas. Para más información sobre los índices, consulta Í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.
Aunque la garantía de durabilidad que proporciona el Diario suele superar los costos de rendimiento de las operaciones de guardar adicionales, tenga en cuenta 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 niveles de confirmación de escritura (write concern) que incluyen
j option,mongoddisminuirá la duración entre registros en el diario, lo que puede aumentar la carga total de escritura.La duración entre guardados de registro es configurable usando la opción
commitIntervalMsen tiempo de ejecución. Disminuir el periodo entre las confirmaciones en el diario aumentará el número de operaciones de guardar, lo que puede limitar la capacidad de MongoDB para realizar operaciones de guardar. Aumentar la cantidad de tiempo entre los commits del diario puede disminuir el número total de operaciones de guardar, pero también aumenta la posibilidad de que el diario no registre una operación de guardar en caso de un evento.
Para información adicional sobre registrar en la bitácora, consulte Registrar en la bitácora.