亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

2020年MongoDB的三大替代方案,各自的優(yōu)缺點比較

 

來源:公眾號《前端全棧開發(fā)者》

JAM Stack,PostgreSQL和Amazon的DynamoDB都是MongoDB的競爭替代品。

NoSQL是用于描述與SQL關(guān)系模型不對應(yīng)的任何類型的數(shù)據(jù)庫的名稱。

NoSQL數(shù)據(jù)庫起源于2009年,當時MySpace等網(wǎng)站規(guī)模不斷擴大,之所以出現(xiàn)NoSQL,是因為當時的數(shù)據(jù)庫無法滿足所需的規(guī)模。

MongoDB是最著名的NoSQL數(shù)據(jù)庫。JAVAScript開發(fā)人員經(jīng)常使用它,尤其是那些使用MERN Stack或MEAN Stack(將Mongo與Express,Angular或React和Node結(jié)合使用)的開發(fā)人員。

人們?yōu)槭裁匆x開MongoDB

一般來說,NoSQL與以往的數(shù)據(jù)庫架構(gòu)有很大的不同,會造成記錄丟失,性能下降。NoSQL放棄了一些數(shù)據(jù)庫的核心功能,這些功能使它們具有高性能且易于使用。作為響應(yīng),許多開發(fā)人員正在考慮從MongoDB和NoSQL轉(zhuǎn)向其他替代方案,例如JAM Stack,PostgreSQL或DynamoDB。

2020年MongoDB的三大替代方案,各自的優(yōu)缺點比較

 

《衛(wèi)報》離開MongoDB是出了名的

在線出版物和英國報紙《衛(wèi)報》在其2018年11月關(guān)于退出MongoDB的文章中獲得了100,000多次觀看。在這篇文章中,進行轉(zhuǎn)換的開發(fā)人員透露,他們的團隊在使用Mongo的數(shù)據(jù)庫管理軟件OpsManager時遇到了問題,而Mongo的支持代理在兩次宕機期間并沒有提供多大幫助。

MongoDB的三種選擇

當許多人繼續(xù)使用Mongo時,軟件開發(fā)人員和數(shù)據(jù)庫工程師可以使用許多替代方法,例如:

  1. JAM Stack:快速,安全和動態(tài)的網(wǎng)站無需Web服務(wù)器即可提供服務(wù)。
  2. PostgreSQL:SQL數(shù)據(jù)庫以其可靠性,功能和性能而聞名。
  3. DynamoDB:Amazon Web Services(AWS)創(chuàng)建的NoSQL數(shù)據(jù)庫。

這三個選項是當前MongoDB的最佳替代方案,在下一節(jié)中,我們將詳細介紹每種選擇的利弊。

MongoDB替代方案1:JAM Stack

2020年MongoDB的三大替代方案,各自的優(yōu)缺點比較

 

JAM Stack是JavaScript、API和prerendered Markup的簡稱,它是一種完全避免需要數(shù)據(jù)庫的無服務(wù)器架構(gòu)。

JAM Stack甚至可以取一個文檔數(shù)據(jù)庫,只要數(shù)據(jù)可以移動到一大堆用Markdown寫的JSON文件中。

使用JAM Stack時,通常使用Gatsby之類的工具來編譯(或構(gòu)建)整個應(yīng)用程序。

不幸的是,這意味著任何更改都需要重建站點。

另一方面,如果通過API訪問動態(tài)內(nèi)容,則動態(tài)內(nèi)容可以實時更改,例如通過Disqus處理的評論。

/ JAM Stack的優(yōu)勢 /

閃電般快速的內(nèi)容交付是JAM Stack的最大優(yōu)勢,因為它沒有服務(wù)器,整個應(yīng)用程序都在客戶端運行。

同時,還具有最大的seo——因為該應(yīng)用程序已經(jīng)過預(yù)編譯,因此被當作靜態(tài)頁面使用,而不是按需生成。

JAM Stack的另一個優(yōu)勢是最小的托管成本。例如,靜態(tài)頁面基本上可以免費托管在AWS上。

/ JAM Stack的缺點 /

每個更改都必須重新構(gòu)建,這意味著需要重新編譯應(yīng)用程序,然后該更改才能在線上可用。

并且,網(wǎng)站越大,構(gòu)建時間越長。

因此,對于需要頻繁發(fā)布,大量數(shù)據(jù)或?qū)崟r編輯數(shù)據(jù)記錄的應(yīng)用程序,通常認為JAM Stack不適合。

MongoDB替代方案2:PostgreSQL

2020年MongoDB的三大替代方案,各自的優(yōu)缺點比較

 

提倡使用SQL的人提到了SQL架構(gòu)的流行和在SQL數(shù)據(jù)庫上執(zhí)行操作分析的卓越能力,關(guān)系型數(shù)據(jù)庫已經(jīng)發(fā)展起來了,它們可以處理幾乎所有的工作負載,并滿足現(xiàn)代應(yīng)用程序所要求的可擴展性、可靠性和可用性。它們可以處理幾乎所有的工作負載,并具有現(xiàn)代應(yīng)用所要求的可擴展性、可靠性和可用性。

換句話說,如果SQL數(shù)據(jù)庫可以擴展,那么它比NoSQL更可取。

PostgreSQL(也稱為Postgres)是一種流行的免費SQL數(shù)據(jù)庫,在其網(wǎng)站上稱自己為“世界上最先進的開源數(shù)據(jù)庫”。

/ PostgreSQL的優(yōu)點 /

PostgreSQL是功能強大的軟件,已經(jīng)連續(xù)開發(fā)了30多年。很多人使用它,并且它有一個充滿活力的社區(qū)。

它與平臺無關(guān)。對于使用AWS的用戶,可以使用Amazon Relational Database Service(RDS)上的Amazon Aurora托管它。

另外,PostgreSQL正在迅速發(fā)展。它的性能優(yōu)于MySQL,MySQL已經(jīng)比MongoDB快得多。

/ PostgreSQL的缺點 /

使用SQL本質(zhì)上增加了任何項目的復(fù)雜性,它是團隊每天使用的一種全新的編程語言。

從NoSQL遷移到SQL可能很困難。從根本上說,它們是一種不同類型的數(shù)據(jù)庫結(jié)構(gòu)。NoSQL是具有鍵值對的文檔存儲,而SQL由表和行組成。

其中一個選項,也是The Guardian在遷移中使用的,是PostgreSQL中的JSONb列類型。然而,使用JSON blobs感覺有點像黑客,就像把NoSQL數(shù)據(jù)庫塞進了SQL格式。

MongoDB替代方案3:DynamoDB

2020年MongoDB的三大替代方案,各自的優(yōu)缺點比較

 

DynamoDB是亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)的NoSQL產(chǎn)品。MongoDB和DynamoDB都可以存儲類似JSON的數(shù)據(jù),具有任意的模式。

DynamoDB最近增加了一個名為rest加密的特性,現(xiàn)在它仍然是一個NoSQL數(shù)據(jù)庫,與MongoDB競爭非常激烈。

這意味著從MongoDB遷移到DynamoDB確實非常容易。

/ DynamoDB的優(yōu)點 /

DynamoDB是AWS上的旗艦NoSQL數(shù)據(jù)庫,所以它的先天優(yōu)勢是AWS平臺的成本、速度和可靠性。

作為AWS產(chǎn)品,它可以輕松地與AWS Lambda和API Gateway集成。

對于目前使用Mongo的人來說,DynamoDB的最大優(yōu)勢就是用戶可以直接從MongoDB進行實時遷移到DynamoDB。

最好的部分是沒有可管理的基礎(chǔ)架構(gòu)——Amazon負責管理。

/ DynamoDB的缺點 /

如果我認為NoSQL丟失記錄的可能性太大,那么DynamoDB對我來說不是一個好選擇。

DynamoDB可能存在可擴展性問題,比如那些與所謂的hotkeys相關(guān)的問題,這些記錄的評估頻率遠遠高于其他記錄。

此外,與MongoDB相比,DynamoDB支持較少復(fù)雜的數(shù)據(jù)類型,并且是AWS專有的產(chǎn)品。

/ DynamoDB不是MongoDB /

Samantha Atkins和Fredrik Erasmus等有益的讀者花時間對本文進行了回復(fù),并提出了DynamoDB的其他缺點。

  • 用DynamoDB做索引是很困難的,沒有全表掃描就沒有一般的查詢支持。
  • DynamoDB使得很難從集合中檢索甚至簡單的文檔計數(shù),并且它不使用游標。
  • DynamoDB的熱鍵和熱分區(qū)需要專業(yè)技術(shù)才能有效使用。
  • 使用AWS上的DynamoDB,你必須用RCU(讀容量單位)和WCU(寫容量單位)來指定“吞吐量容量”,這給你的項目增加了很大的復(fù)雜性。

DynamoDB被稱為“我曾經(jīng)使用過的最不友好的持久化解決方案”。事實上,MongoDB自己的廣告文案列出了MongoDB相對于DynamoDB的十幾項優(yōu)勢。

所以,在從MongoDB切換到DynamoDB之前,一定要三思而后行,盡管兩者之間有明顯的相似之處。

我的看法

JAM Stack是當今最酷的技術(shù)之一。它的速度快得離譜,易于訪問,對SEO也很友好,另外靜態(tài)文件在AWS上是免費托管的。

然而,JAM Stack只有對于那些有能力有一個構(gòu)建步驟并重新編譯每一個變化的應(yīng)用程序才是正確的選擇。

如果你問我,我會說,即使是非常大的網(wǎng)站也可以通過預(yù)定的編譯,比如說每小時一次,在JAM Stack上構(gòu)建。JAM Stack很激進。

它可能不適用于新聞?wù)军c,但是許多動態(tài)站點不需要比這更頻繁地更新內(nèi)容,靜態(tài)站點當然也不需要。

SQL vs. NoSQL

如果說需要編譯步驟是一個項目的決定性因素,那么就會歸結(jié)為SQL與NoSQL:PostgreSQL或DynamoDB。

PostgreSQL不一定要托管在Amazon上,不過可以托管在Amazon RDS上。DynamoDB是由亞馬遜開發(fā)的,是亞馬遜的獨家產(chǎn)品。

SQL數(shù)據(jù)庫本身功能更強大,但也更復(fù)雜。它們的優(yōu)勢在于業(yè)務(wù)分析和搜索。

NoSQL數(shù)據(jù)庫更容易設(shè)置,對很多項目來說足夠了。這也是為什么The Guardian考慮用DynamoDB來寫他們的230萬篇文章。

最終,他們選擇了PostgreSQL,因為DynamoDB在2017年的時候并沒有提供加密功能,但如果他們今天考慮從MongoDB轉(zhuǎn)移到PostgreSQL,他們很可能會做出不同的決定。

總結(jié)

JAM Stack(無服務(wù)器架構(gòu))是一個很好的選擇,特別是對于任何一個以靜態(tài)為主的網(wǎng)站,也是一個很好的技術(shù),需要注意。

PostgreSQL擁有一個龐大的社區(qū),并在一個可靠的、功能豐富的、性能卓越的開源軟件包中提供了SQL的所有功能。

DynamoDB是MongoDB的即插即用的替代產(chǎn)品,它為你提供了規(guī)模、安全性和速度,而無需維護任何基礎(chǔ)設(shè)施。

分享到:
標簽:MongoDB
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定