faster - Pros y contras de MongoDB?
mongodb vs sqlite (1)
¿Alguien podría decirme cuáles son los pros y los contras de mongodb, especialmente comparando con la base de datos relacional? incluyendo ACID, escalabilidad, rendimiento, uso de memoria principal, rendimiento de inserción / consulta y tamaño de índice, etc.
Algunos puntos generales sobre MongoDB
Pros:
- sin esquema. Si tiene un esquema flexible, esto es ideal para una tienda de documentos como MongoDB. Esto es difícil de implementar de manera efectiva en RDBMS
- facilidad de escalabilidad. La escala se lee mediante el uso de conjuntos de réplicas. Escala escribe usando sharding (auto equilibrio). Simplemente enciende otra máquina y vete. Agregar más máquinas = agregar más RAM para distribuir su conjunto de trabajo.
- costo. Depende de qué RDBMS, por supuesto, pero MongoDB es gratuito y puede ejecutarse en Linux, ideal para ejecutar en un kit de productos más barato.
- puede elegir qué nivel de consistencia desea dependiendo del valor de los datos (por ejemplo, un rendimiento más rápido = disparar y olvidar insertos en MongoDB, un rendimiento más lento = esperar hasta que la inserción se haya replicado en varios nodos antes de volver)
Contras:
- El tamaño de los datos en MongoDB suele ser más alto debido, por ejemplo, a que cada documento tiene nombres de campos almacenados
- menos flexibilidad con consultas (p. ej., sin JOIN)
- no admite transacciones: se admiten ciertas operaciones atómicas, en un solo nivel de documento
- en este momento Map / Reduce (por ejemplo, hacer agregaciones / análisis de datos) está bien, pero no increíblemente rápido. Entonces, si es necesario, algo como Hadoop puede necesitar ser agregado a la mezcla
- información disponible menos actualizada / producto de evolución rápida
Hace poco publiqué mis pensamientos sobre MongoDB como alguien proveniente del fondo de SQL Server, por lo que podría interesarte (los anteriores son solo algunos de los puntos principales).
Si está buscando una respuesta "¿Es mejor MongoDB que RDBMS?", En mi humilde opinión no hay respuesta. Las tecnologías NoSQL como MongoDB proporcionan una alternativa que complementa las tecnologías RDBMS. Uno puede ser más adecuado para un propósito particular que el otro, por lo que se trata de hacer una llamada sobre lo que es mejor para usted para un requisito determinado.