2011-03-09 19 views
62

¿Alguien podría decirme cuáles son los pros y los contras de mongodb, especialmente en comparación con la base de datos relacional? incluyendo el ácido, escalabilidad, rendimiento, uso de memoria, insertar/rendimiento de la consulta principal y el tamaño del índice etc.Pros y contras de MongoDB?

+2

Podría ayudar http://www.code-sample.com/2016/07/mongodb-advantages-disadvantages.html –

+1

¿Por qué cerrar una pregunta como esta? Como muestran los votos al alza, es útil. Siendo demasiado entusiasta allí. Un buen ejemplo del paradigma SO se ha llevado demasiado lejos. –

Respuesta

102

algunos puntos generales en MongoDB

Pros:

  • esquema-menos. 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 escalamiento horizontal. 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.
  • se puede elegir qué nivel de consistencia deseada en función del valor de los datos (por ejemplo, un rendimiento más rápido = dispara y olvida insertos a MongoDB, un rendimiento más lento = esperar hasta inserto se ha replicado en varios nodos antes de regresar)

Contras:

  • tamaño de datos en MongoDB es típicamente más alto debido a, por ejemplo Cada documento tiene nombres de campo almacenado
  • menos flexibity con la consulta (por ejemplo, sin juntas)
  • no hay soporte para transacciones - ciertas operaciones atómicas son compatibles, en un solo nivel de documento
  • en el momento map/reduce (por ejemplo, para hacer agregaciones/análisis de datos) está bien, pero no increíblemente rápido. Así que si lo que se requiere, puede necesitar algo así como Hadoop que se añade a la mezcla
  • menos la información actualizada disponible/rápida evolución del producto

Recientemente blogged my thoughts en MongoDB como alguien que viene de fondo de SQL Server, por lo que podría estar interesado en eso (arriba son solo algunos de los puntos principales).

Si está buscando una respuesta "¿Es mejor MongoDB que RDBMS?", Entonces 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.

+3

+1, pero creo que es importante tener en cuenta que la capacidad de respuesta de la lista de correo es inmediata, precisa y profunda, lo cual es muy importante cuando el producto evoluciona tan rápido. –

+0

Buen punto. En mi publicación del blog incluí "Comunidad" como uno de los aspectos positivos sobre MongoDB y también que "evolucionando rápidamente" también es positivo. Eso no quiere decir que la comunidad para RDMBS tampoco sea impresionante, como lo es, hablando desde SQL Server POV :) – AdaTheDev

+5

Diría que te perdiste un punto importante al citar "gratis" como profesional. de hecho, la mejor alternativa en el mundo de RDBMS es PostgreSQl, que es igual de gratuita e incluso mejor que SQLServer en términos de estándares SQL y confiabilidad. –