日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

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

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

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

 

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

JAM Stack,PostgreSQL和Amazon的DynamoDB都是MongoDB的競(jìng)爭(zhēng)替代品。

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

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

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

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

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

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

 

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

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

MongoDB的三種選擇

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

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

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

MongoDB替代方案1:JAM Stack

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

 

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

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

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

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

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

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

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

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

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

/ JAM Stack的缺點(diǎn) /

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

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

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

MongoDB替代方案2:PostgreSQL

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

 

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

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

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

/ PostgreSQL的優(yōu)點(diǎn) /

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

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

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

/ PostgreSQL的缺點(diǎn) /

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

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

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

MongoDB替代方案3:DynamoDB

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

 

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

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

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

/ DynamoDB的優(yōu)點(diǎn) /

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

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

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

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

/ DynamoDB的缺點(diǎn) /

如果我認(rèn)為NoSQL丟失記錄的可能性太大,那么DynamoDB對(duì)我來說不是一個(gè)好選擇。

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

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

/ DynamoDB不是MongoDB /

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

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

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

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

我的看法

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

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

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

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

SQL vs. NoSQL

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

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

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

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

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

總結(jié)

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

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

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

分享到:
標(biāo)簽:MongoDB
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

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

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

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

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

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

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

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

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定