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

Razones a favor y en contra de pasar del servidor SQL a MongoDB

En mi opinión, el formato de sus datos debe ser la principal preocupación al elegir un backend de almacenamiento. ¿Tiene datos que son de naturaleza relacional? Si es así, ¿puede y es una buena idea modelar los datos en los documentos? El modelado de datos es tan importante en una base de datos de documentos como en una base de datos relacional, solo que se hace de manera diferente. ¿Cuántos tipos de objetos tienes y cómo se relacionan? ¿Puede DBrefs en Mongodb hacer el truco o extrañará tanto las claves externas que será doloroso? ¿Cuáles son sus patrones de acceso a los datos? ¿Está simplemente obteniendo datos de un tipo filtrados por un valor de campo, o tiene modos de obtención intrincados?

¿Necesita integridad transaccional ACID? ¿El dominio impone muchas restricciones a los datos? ¿Necesita el factor de escalabilidad de una base de datos de documentos o es algo "genial"?

¿Cuáles son sus requisitos de coherencia e integridad de datos? Algunas soluciones NoSQL y MongoDB en particular son bastante flexibles en la consistencia de escritura para obtener rendimiento. NoSQL no es un paisaje uniforme y otros productos, p. CouchDB tiene otras características en este departamento. Algunos también se pueden ajustar.

Estas son todas las preguntas que deben entrar en la elección del almacenamiento.

Algunas Experiencias

  • Hacer informes extensos sobre los datos almacenados puede ser más difícil cuando se usa MongoDB o cualquier base de datos de documentos y algunos casos de uso han combinado RDBMS y document-db para ese propósito.
  • (Muy) Modelo de consulta diferente. MongoDB también se diferencia de otras bases de datos de documentos.
  • Flexible para cambiar el formato/esquema de datos durante el desarrollo
  • Territorio desconocido
  • diferente grado de madurez en los controladores y marcos
  • Rápido
  • Herramientas de administración y productos más simples (en muchos sentidos) (en comparación con muchos productos RDBMS)
  • No más desajustes de impedancia. El almacenamiento se ajusta a los datos, no al revés.
  • Menos fricción y acceso más directo a los datos.
  • Dominio más ligado a la persistencia (dependiendo del "nivel" ORM de NoRM, de cuánto abstraiga el backend. No he usado NoRM, así que no puedo responder eso).