sql >> Base de Datos >  >> NoSQL >> MongoDB

Pros y contras de usar MongoDB en lugar de MS SQL Server

Soy principiante en bases de datos NoSQL. Así que estoy respondiendo esto a expensas de posibles votos negativos, pero será una gran experiencia de aprendizaje para mí.

  • para saber si MongoDB es bueno para almacenar dichos datos, que eventualmente se consultarán en intervalos de tiempo (por ejemplo, recuperar todas las imágenes de una cámara en particular entre una hora específica)? ¿Alguna sugerencia sobre el diseño del esquema basado en documentos para mi caso?

MongoDB es una base de datos orientada a documentos, es bueno para consultar dentro un agregado (usted lo llama documento). Como ya está almacenando los datos de cada cámara en su propia tabla, en MongoDB tendrá una colección separada creado para cada cámara. Así es como realiza consultas de rango de fechas.

  • ¿Cuáles deberían ser las especificaciones del servidor (CPU, RAM, disco)? alguna sugerencia?

Todas las bases de datos NoSQL están diseñadas para escalar horizontalmente en hardware básico. Pero por la forma en que ha formulado la pregunta, es posible que esté pensando en mejorar el rendimiento mediante la ampliación. . Puede comenzar con una máquina razonable y, a medida que aumenta la carga, puede seguir agregando más servidores (escalado). No es necesario planificar y comprar un servidor de gama alta.

  • ¿Debería considerar Sharding/Replication para este escenario (considerando el rendimiento al escribir para sincronizar conjuntos de réplicas)?

MongoDB bloquea toda la base de datos para una sola escritura (pero rinde para otras operaciones) y está diseñado para sistemas que tienen más lecturas que escrituras. Así que esto depende de cómo sea tu sistema. Hay varias formas de fragmentación y debe ser específico del dominio. Una respuesta genérica no es posible. Sin embargo, se pueden dar algunos ejemplos como fragmentación por geografía, por ramas, etc.

Lea también Una introducción en inglés sencillo al teorema CAP

Actualizado con respuesta al comentario sobre fragmentación

Según su documentación , Debería considerar implementar un clúster fragmentado, si:

Entonces, basado en el último punto, sí. La función de fragmentación automática está diseñada para escalar las escrituras. En ese caso, tiene un bloqueo de escritura por fragmento , no por base de datos . Pero la mía es una respuesta teórica. Le sugiero que consulte con el grupo 10gen.com.