2020年MongoDB的三大替代方案,各自的优缺点比较


2020年MongoDB的三大替代方案,各自的优缺点比较

文章插图
 
来源:公众号《前端全栈开发者》
JAM Stack,PostgreSQL和Amazon的DynamoDB都是MongoDB的竞争替代品 。
NoSQL是用于描述与SQL关系模型不对应的任何类型的数据库的名称 。
NoSQL数据库起源于2009年,当时MySpace等网站规模不断扩大,之所以出现NoSQL,是因为当时的数据库无法满足所需的规模 。
MongoDB是最著名的NoSQL数据库 。JAVAScript开发人员经常使用它,尤其是那些使用MERN Stack或MEAN Stack(将Mongo与Express,Angular或React和Node结合使用)的开发人员 。
人们为什么要离开MongoDB一般来说,NoSQL与以往的数据库架构有很大的不同,会造成记录丢失,性能下降 。NoSQL放弃了一些数据库的核心功能,这些功能使它们具有高性能且易于使用 。作为响应,许多开发人员正在考虑从MongoDB和NoSQL转向其他替代方案,例如JAM Stack,PostgreSQL或DynamoDB 。
2020年MongoDB的三大替代方案,各自的优缺点比较

文章插图
 
《卫报》离开MongoDB是出了名的在线出版物和英国报纸《卫报》在其2018年11月关于退出MongoDB的文章中获得了100,000多次观看 。在这篇文章中,进行转换的开发人员透露,他们的团队在使用Mongo的数据库管理软件OpsManager时遇到了问题,而Mongo的支持代理在两次宕机期间并没有提供多大帮助 。
MongoDB的三种选择当许多人继续使用Mongo时,软件开发人员和数据库工程师可以使用许多替代方法,例如:
  1. JAM Stack:快速,安全和动态的网站无需Web服务器即可提供服务 。
  2. PostgreSQL:SQL数据库以其可靠性,功能和性能而闻名 。
  3. DynamoDB:Amazon Web Services(AWS)创建的NoSQL数据库 。
这三个选项是当前MongoDB的最佳替代方案,在下一节中,我们将详细介绍每种选择的利弊 。
MongoDB替代方案1:JAM Stack
2020年MongoDB的三大替代方案,各自的优缺点比较

文章插图
 
JAM Stack是JavaScript、API和prerendered Markup的简称,它是一种完全避免需要数据库的无服务器架构 。
JAM Stack甚至可以取一个文档数据库,只要数据可以移动到一大堆用Markdown写的JSON文件中 。
使用JAM Stack时,通常使用Gatsby之类的工具来编译(或构建)整个应用程序 。
不幸的是,这意味着任何更改都需要重建站点 。
另一方面,如果通过API访问动态内容,则动态内容可以实时更改,例如通过Disqus处理的评论 。
/ JAM Stack的优势 /
闪电般快速的内容交付是JAM Stack的最大优势,因为它没有服务器,整个应用程序都在客户端运行 。
同时,还具有最大的seo——因为该应用程序已经过预编译,因此被当作静态页面使用,而不是按需生成 。
JAM Stack的另一个优势是最小的托管成本 。例如,静态页面基本上可以免费托管在AWS上 。
/ JAM Stack的缺点 /
每个更改都必须重新构建,这意味着需要重新编译应用程序,然后该更改才能在线上可用 。
并且,网站越大,构建时间越长 。
因此,对于需要频繁发布,大量数据或实时编辑数据记录的应用程序,通常认为JAM Stack不适合 。
MongoDB替代方案2:PostgreSQL
2020年MongoDB的三大替代方案,各自的优缺点比较

文章插图
 
提倡使用SQL的人提到了SQL架构的流行和在SQL数据库上执行操作分析的卓越能力,关系型数据库已经发展起来了,它们可以处理几乎所有的工作负载,并满足现代应用程序所要求的可扩展性、可靠性和可用性 。它们可以处理几乎所有的工作负载,并具有现代应用所要求的可扩展性、可靠性和可用性 。
换句话说,如果SQL数据库可以扩展,那么它比NoSQL更可取 。
【2020年MongoDB的三大替代方案,各自的优缺点比较】PostgreSQL(也称为Postgres)是一种流行的免费SQL数据库,在其网站上称自己为“世界上最先进的开源数据库” 。
/ PostgreSQL的优点 /
PostgreSQL是功能强大的软件,已经连续开发了30多年 。很多人使用它,并且它有一个充满活力的社区 。
它与平台无关 。对于使用AWS的用户,可以使用Amazon Relational Database Service(RDS)上的Amazon Aurora托管它 。
另外,PostgreSQL正在迅速发展 。它的性能优于MySQL,MySQL已经比MongoDB快得多 。
/ PostgreSQL的缺点 /
使用SQL本质上增加了任何项目的复杂性,它是团队每天使用的一种全新的编程语言 。


推荐阅读