我应该使用 MongoDB 还是 PostgreSQL? - Amrit


在本文中,我们将讨论两个数据库,MongoDB 和 PostgreSQL。我们将介绍它们的主要特性、功能、性能和用例。
 
MongoDB
Mongo是一个无模式的面向文档的存储。它具有与关系数据库管理系统 (RDBMS) 不同的数据语法和结构,它以文档的形式存储数据。
MongoDB 将数据处理为 JSON 文档。您也可以查询 JSON 文档中的字段。因此,在您希望将文档存储在灵活数据字段中的情况下,MongoDB 非常有用。
主要特点

  • BSON:BSON代表二进制 JSON。BSON 是 MongoDB 最重要的方面之一,因为它使查询速度更快。BSON 是一种序列化格式,可以有效地归档类似 JSON 的文档。BSON 跳过未被查询说服的键。因此,它使查询更快。
  • 文档存储:MongoDB 是无模式的:您可以以 JSON 文档的形式存储数据。这在模式更改方面提供了灵活性。与传统的 RDBMS 系统不同,如果您需要更改数据模式,则需要更改表的结构,而 MongoDB 不需要您更改结构来进行此类更改。
  • ACID:我们已经看到 NoSQL 数据库通常不符合ACID 属性。出于这个原因,开发人员/团队不依赖这些数据库进行金融交易。

2018年,MongoDB开始采用ACID格式。MongoDB 在 4.0 版本中推出了对多文档 ACID 事务的支持。2020 年 5 月,报告了一个错误,该错误影响了 MongoDB 的 ACID 声明。此错误已在 4.2.8 版中修复。
如果 ACID 是您项目的首选,您应该在使用 MongoDB 之前进行自己的研究。
 
PostgreSQL

什么是 PostgreSQL?PostgreSQL 或 Postgres 是一种免费且开源的基于 SQL 的 RDBMS。它使用 SQL 数据库的传统语法和模式保留数据。模式定义了数据存储的结构。
PostgreSQL 以其前身 Ingres DB 命名。PostgreSQL 一次可以处理很多事务。它可用于管理从 Web 应用程序到数据仓库的任何数据。
主要特点
  • SQL:Postgre 使用 SQL 来定义、访问和操作数据库中的数据。它有自己的 SQL,称为 PL/pgSQL(过程语言/PostgreSQL)。PL/pgSQL 与 SQL 没有太大区别;它为复杂的查询提供了更多的功能。
  • 交易量:PostgreSQL 用于各种银行系统、商业智能系统和制造业。它的变体甚至被用作数据仓库。
  • ACID:Postgres 是事务性工作流的理想选择。它具有内置的故障保护和冗余功能,使其在生产环境中非常可靠。Postgres 事务遵守 ACID 原则。这就是 Postgre 用于医疗保健和制造领域的关键任务系统的原因。

 
总结

MongoDB 和 PostgreSQL 以不同的结构存储数据。根据最近的报告,行业中大多数复杂的应用程序都使用不止一种数据库。
在需要高级别安全性并且预计交易或查询方面的规模的情况下,首选 Postgre。MongoDB 用于非结构化数据存储。NoSQL 数据库相对较新,不适合高度安全的应用程序。
我见过初创公司在他们的应用程序中使用多种类型的数据库。它们不限于一个数据库。许多原型和 POC 都是使用 MongoDB 构建的,因为它是无模式的并且提供了很大的灵活性。