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

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

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

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更可取。

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

/ PostgreSQL的優點 /

PostgreSQL是功能強大的軟件,已經連續開發了30多年。很多人使用它,并且它有一個充滿活力的社區。

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

另外,PostgreSQL正在迅速發展。它的性能優于MySQL,MySQL已經比MongoDB快得多。

/ PostgreSQL的缺點 /

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

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

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

MongoDB替代方案3:DynamoDB

2020年MongoDB的三大替代方案,各自的優缺點比較

 

DynamoDB是亞馬遜網絡服務(AWS)的NoSQL產品。MongoDB和DynamoDB都可以存儲類似JSON的數據,具有任意的模式。

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

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

/ DynamoDB的優點 /

DynamoDB是AWS上的旗艦NoSQL數據庫,所以它的先天優勢是AWS平臺的成本、速度和可靠性。

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

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

最好的部分是沒有可管理的基礎架構——Amazon負責管理。

/ DynamoDB的缺點 /

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

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

此外,與MongoDB相比,DynamoDB支持較少復雜的數據類型,并且是AWS專有的產品。

/ DynamoDB不是MongoDB /

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

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

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

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

我的看法

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

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

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

它可能不適用于新聞站點,但是許多動態站點不需要比這更頻繁地更新內容,靜態站點當然也不需要。

SQL vs. NoSQL

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

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

SQL數據庫本身功能更強大,但也更復雜。它們的優勢在于業務分析和搜索。

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

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

總結

JAM Stack(無服務器架構)是一個很好的選擇,特別是對于任何一個以靜態為主的網站,也是一個很好的技術,需要注意。

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

DynamoDB是MongoDB的即插即用的替代產品,它為你提供了規模、安全性和速度,而無需維護任何基礎設施。

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

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

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

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

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

運動步數有氧達人2018-06-03

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

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定