A menudo se afirma que mongodb tiene escrituras insensatamente rápidas. Si bien no son lentos, esta es una exageración. El rendimiento de escritura en mongodb está limitado por el bloqueo de escritura global. Sí, me escuchó bien, solo puede haber UNA operación de escritura en el servidor en cualquier momento.
También le sugiero que aproveche la naturaleza sin esquemas de mongodb y almacene sus datos desnormalizados. A menudo es posible hacer solo un disco para buscar todos los datos requeridos (porque todo está en el mismo documento). Menos búsqueda de disco: consultas más rápidas.
Si los datos se encuentran en la memoria RAM - no se requieren búsquedas de disco en absoluto, los datos se sirven directamente desde la memoria. Por lo tanto, asegúrese de tener suficiente RAM.
Map/Reduce, group, $where consultas son lentas.
No es rápido seguir escribiendo en un documento grande (usando $push
, por ejemplo). El documento superará los límites de su disco y tendrá que ser copiado a otro lugar, lo que implica más operaciones de disco.
Y estoy de acuerdo con @AurelienB, algunos principios básicos son universales en todas las bases de datos.
Lo que le oigo decir es "mongodb tiene escrituras individuales muy rápidas, pero el sistema de cerradura lo limita a uno a la vez". ¿Eso se aplica incluso con sharding? – Abe
No, sharding mitiga este problema. Cada fragmento tiene su propio bloqueo. –