Mi experiencia con Postgres y Mongo después de trabajar con ambas bases de datos en mis proyectos.
Postgres (RDBMS)
Se recomienda Postgres si sus aplicaciones futuras tienen un esquema complicado que necesita muchas uniones o todos los datos tienen relaciones o si tenemos una escritura pesada. Postgres es de código abierto, más rápido, compatible con ACID y utiliza menos memoria en el disco, y también tiene un buen rendimiento para el almacenamiento JSON e incluye la serialización completa de transacciones con 3 niveles de aislamiento de transacciones.
La mayor ventaja de permanecer con Postgres es que tenemos lo mejor de ambos mundos. Podemos almacenar datos en JSONB con restricciones, consistencia y velocidad. Por otro lado, podemos usar todas las funciones de SQL para otros tipos de datos. El motor subyacente es muy estable y se adapta bien a una buena variedad de volúmenes de datos. También se ejecuta en su elección de hardware y sistema operativo. Postgres proporciona capacidades NoSQL junto con soporte completo de transacciones, almacenando documentos JSON con restricciones en los datos de los campos.
Restricciones generales para Postgres
Escalar Postgres horizontalmente es significativamente más difícil, pero factible.
Las operaciones de lectura rápida no se pueden lograr por completo con Postgres.
SIN bases de datos SQL
Mongo DB (tigre con cable)
MongoDB puede vencer a Postgres en dimensión de "escala horizontal". El almacenamiento de JSON es para lo que Mongo está optimizado. Mongo almacena sus datos en un formato binario llamado BSONb que es (aproximadamente) solo una representación binaria de un superconjunto de JSON. MongoDB almacena objetos exactamente como fueron diseñados. Según MongoDB, para aplicaciones de escritura intensiva, Mongo dice que el nuevo motor (Wired Tiger) brinda a los usuarios un aumento de hasta 10 veces en el rendimiento de escritura (debería probar esto), con una reducción del 80 por ciento en la utilización del almacenamiento, lo que ayuda a reducir los costos de almacenamiento. , lograr una mayor utilización del hardware.
Restricciones generales de MongoDb
El uso de un motor de almacenamiento sin esquemas conduce al problema de los esquemas implícitos. Estos esquemas no están definidos por nuestro motor de almacenamiento, sino que se definen en función del comportamiento y las expectativas de la aplicación.
Las tecnologías NoSQL independientes no cumplen con los estándares ACID porque sacrifican las protecciones de datos críticos en favor de un alto rendimiento para aplicaciones no estructuradas. No es difícil aplicar ACID en bases de datos NoSQL pero haría que la base de datos sea lenta e inflexible hasta cierto punto. “La mayoría de las limitaciones de NoSQL se optimizaron en las nuevas versiones y lanzamientos que han superado sus limitaciones anteriores en gran medida”.