> Image by Tumisu from Pixabay
數(shù)據(jù)庫是任何軟件應用程序的基石。您將需要一個或多個數(shù)據(jù)庫來開發(fā)幾乎所有類型的軟件應用程序:Web,企業(yè),嵌入式系統(tǒng),實時系統(tǒng),AI,ML,HPC,區(qū)塊鏈,IoT和許多其他應用程序。
二十年前,選擇數(shù)據(jù)庫要容易得多。在大多數(shù)情況下,您可能選擇了一個關系數(shù)據(jù)庫系統(tǒng),然后就完成了。但是在現(xiàn)代軟件開發(fā)中,選擇正確的數(shù)據(jù)庫是最具挑戰(zhàn)性的任務之一。
隨著微服務,云,分布式應用程序,全局擴展,半結(jié)構(gòu)化數(shù)據(jù),大數(shù)據(jù),快速數(shù)據(jù),低延遲數(shù)據(jù)的興起:現(xiàn)在,各種NoSQL都加入了傳統(tǒng)的SQL數(shù)據(jù)庫。NewSQL和Cloud數(shù)據(jù)庫。
目前有343個數(shù)據(jù)庫。在這里,我將根據(jù)以下標準從它們中選擇十個數(shù)據(jù)庫:
我將為每個數(shù)據(jù)庫討論以下內(nèi)容:
1995年,兩位軟件工程師Michael Widenius和David Axmark創(chuàng)建了開源關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)MySQL。自成立以來,MySQL因其企業(yè)級功能,免費,靈活(GPL)社區(qū)許可證和升級的商業(yè)許可證而迅速在行業(yè)和社區(qū)中流行。在開源數(shù)據(jù)庫中,PostgreSQL專注于創(chuàng)新和高級功能,而MySQL則專注于健壯性,穩(wěn)定性和成熟度。
今天,MySQL是最流行和使用最廣泛的SQL數(shù)據(jù)庫之一。它也是Web應用程序中最常用的數(shù)據(jù)庫之一。世界上一些最大的Web規(guī)模應用程序(例如Facebook,Uber)使用MySQL。
MySQL Community Edition是業(yè)界使用最廣泛的免費數(shù)據(jù)庫。而且,其商業(yè)版本在行業(yè)中被廣泛使用。
最著名的數(shù)據(jù)庫排名網(wǎng)站DB-Engines將MySQL排名第二,僅次于Oracle:
> Image by Author (data: DB-Engines)
2020年Stack Overflow開發(fā)人員調(diào)查將MySQL列為2020年最受歡迎的數(shù)據(jù)庫:
> Source: Stack Overflow Developer Survey, 2020
擁有25年歷史的MySQL并不是目前最流行的數(shù)據(jù)庫。但是與其他較舊的數(shù)據(jù)庫不同,它仍然保持較高的吸引力,如下所示:
> Source: DB-Engines
此外,Google趨勢在過去幾年中顯示出相對穩(wěn)定的圖表:
> Source: Google Trends
當埃德加·科德(Edgar F. Codd)在關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)上發(fā)表其革命性論文“大型共享數(shù)據(jù)庫的數(shù)據(jù)關系模型”(1970)時,它徹底改變了數(shù)據(jù)庫系統(tǒng)的面貌。該論文特別啟發(fā)了年輕的軟件工程師Larry Ellison(Oracle公司現(xiàn)任CTO)。后來,他在1979年創(chuàng)建了世界上第一個可商用的RDBMS系統(tǒng)Oracle。從那時起,Oracle一直是領先的商業(yè)RDMBS系統(tǒng),并在Unix和Linux系統(tǒng)中占據(jù)主導地位。在過去的41年中,Oracle隨著時間的推移不斷發(fā)展,并為RDBMS和整個數(shù)據(jù)庫系統(tǒng)的創(chuàng)新做出了貢獻。
目前,Oracle是商業(yè)支持的第一數(shù)據(jù)庫,也是整體上使用廣泛的RDBMS之一。它的最新版本(21.c)添加了許多創(chuàng)新功能,這些功能將使其在未來幾年成為有吸引力的選擇。
四十年來,Oracle為客戶提供了穩(wěn)定,成熟的企業(yè)級數(shù)據(jù)庫。盡管它面臨來自開放源代碼SQL數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫的激烈競爭,但它仍然是DB-Engines排名最高的數(shù)據(jù)庫系統(tǒng):
> Image by Author (Data: DB-Engines)
但是,在Stack Overflow開發(fā)人員調(diào)查中,由于該列表受開源數(shù)據(jù)庫的支配,因此它排名第8位:
> Source: Stack Overflow Developer Survey, 2020
Oracle可能以其最新版本贏得了大獎。結(jié)果,它在最近幾年中獲得了很大的吸引力??紤]到市場正在轉(zhuǎn)向開源數(shù)據(jù)庫,這是一個壯舉:
> Source: DB-Engines
此外,Google的趨勢還顯示出Oracle的曲線非常平坦,這在商業(yè)數(shù)據(jù)庫中很少見:
> Source: Google Trends
自1970年代初以來,加州大學伯克利分校就致力于通過其開創(chuàng)性的數(shù)據(jù)庫項目Ingres來塑造現(xiàn)代數(shù)據(jù)庫管理系統(tǒng)。1986年,傳奇人物Michael Stonebraker領導了POSTGRES(Post-Ingres)項目,以解決現(xiàn)有數(shù)據(jù)庫項目的問題。PostgreSQL誕生于POSTGRES項目的一部分,該項目是一個關系數(shù)據(jù)庫管理系統(tǒng)。在過去的30年中,PostgreSQL在現(xiàn)代數(shù)據(jù)庫開發(fā)方面處于領先地位,做出了許多創(chuàng)新,邁克爾·斯通布雷克(Michael Stonebraker)于2014年獲得圖靈獎,主要是因為他在PostgreSQL中的工作。
如今,PostgreSQL是最常用的數(shù)據(jù)庫之一。它也是最先進的開源關系數(shù)據(jù)庫。
PostgreSQL是最古老的開源和免費數(shù)據(jù)庫之一。它具有巨大的社區(qū)支持,并在社區(qū)和行業(yè)中得到使用。
根據(jù)數(shù)據(jù)庫引擎,它是最受歡迎的數(shù)據(jù)庫之一:
> Image by Author (Data: DB-Engines)
根據(jù)Stack Overflow開發(fā)人員調(diào)查,它是2020年第二受歡迎的數(shù)據(jù)庫:
> Source: Stack Overflow Developer Survey, 2020
由于其先進的功能和創(chuàng)新,即使在PostgreSQL引入30年后,它也獲得了很多宣傳,如下所示:
> Source: DB-Engines
Google趨勢在最近幾年也顯示出對PostgreSQL的吸引力增加,這表明對PostgreSQL的興趣日益增加:
> Source: Google Trends
1988年,Microsoft與Ashton-Tate和Sybase一起創(chuàng)建了RDBMS作為Sybase SQL Server變體。1989年,他們發(fā)布了Microsoft SQL Server的第一個版本。盡管不像其他產(chǎn)品那么創(chuàng)新或先進,但是Microsoft SQL Server多年來經(jīng)歷了重大更新和大修。最初針對IBM OS / 2發(fā)行,不久又針對Windows系統(tǒng)發(fā)行。在過去的三十年中,它是Windows系統(tǒng)中占主導地位的商業(yè)中型數(shù)據(jù)庫。
當前,它是領先的商業(yè)數(shù)據(jù)庫系統(tǒng)之一,Microsoft提供了出色的工具支持。
MS SQL是Windows平臺中最受歡迎的商業(yè)數(shù)據(jù)庫,也是Azure Cloud中首選的SQL數(shù)據(jù)庫。由于這些事實,根據(jù)DB-Engines排名,它仍然是第三受歡迎的數(shù)據(jù)庫:
> Image by Author (Data: DB-Engines)
它也是Stack Overflow Developer調(diào)查中第三大最受歡迎的數(shù)據(jù)庫:
> Source: Stack Overflow Developer Survey, 2020
MS SQL是此列表中最古老的數(shù)據(jù)庫之一。盡管它是一個穩(wěn)定可靠的數(shù)據(jù)庫,但它并不是最具創(chuàng)新性或先進性的數(shù)據(jù)庫,并且呈下降趨勢,如DB-Engines趨勢所示:
> Source: DB-Engines
多年來,Google趨勢顯示MS SQL呈下降趨勢,并且在2021年也不會改變:
> Source: Google Trends
當我們需要在數(shù)據(jù)庫中保存半結(jié)構(gòu)化數(shù)據(jù)(例如JSON,XML)時,有很多用例。此外,使用面向?qū)ο蟮木幊陶Z言向RDBMS加載和訪問數(shù)據(jù)需要附加的應用程序級映射(對象關系阻抗不匹配)。為了解決這些問題,尤其是處理文檔數(shù)據(jù)時,公司10gen(現(xiàn)為MongoDB Inc.)在2009年發(fā)布了MongoDB作為第一個文檔數(shù)據(jù)庫。在接下來的十年中,MongoDB進行了重大改進。它解決了許多缺點(例如安全性),并創(chuàng)新并開創(chuàng)了許多功能。
當前,它是主要的文檔數(shù)據(jù)庫和主要的NoSQL數(shù)據(jù)庫。
作為著名的文檔數(shù)據(jù)庫,MongoDB近年來正迅速普及,并且在數(shù)據(jù)庫引擎排名中排名第五。
> Image by Author (Data: DB-Engines)
2020年Stack Overflow開發(fā)人員調(diào)查還使MongoDB排名第五:
> Source: Stack Overflow Developer Survey, 2020
如數(shù)據(jù)庫引擎所示,MongoDB近年來正逐漸受到青睞:
> Source: DB-Engines
Google趨勢還顯示了MongoDB的上升趨勢:
> Source: Google Trends
2009年,意大利開發(fā)人員Salvatore Sanfilippo試圖改善其創(chuàng)業(yè)公司的可擴展性,并希望開發(fā)一個實時日志分析器。他在使用傳統(tǒng)數(shù)據(jù)庫系統(tǒng)時遇到了嚴重的擴展問題,并將Redis創(chuàng)建為分布式內(nèi)存中鍵值存儲。Redis很快就受到社區(qū)的歡迎,并發(fā)展成為高度可擴展的內(nèi)存中數(shù)據(jù)結(jié)構(gòu)存儲,已在業(yè)界廣泛使用。
幾乎所有企業(yè)都使用分布式內(nèi)存數(shù)據(jù)存儲和分布式緩存。因此,Redis在行業(yè)中非常受歡迎,如下所示:
> Image by Author (Data: DB-Engines)
Stack Overflow開發(fā)人員調(diào)查還將Redis列為整體排名第六的最受歡迎的數(shù)據(jù)庫:
> Source: Stack Overflow Developer Survey, 2020
隨著云和微服務的興起,Redis在最近幾年受到了極大的關注,如下所示:
> Source: DB-Engines
自成立以來,Google趨勢也顯示了Redis趨勢的直線上升:
> Source: Google Trends
無論是小型創(chuàng)業(yè)公司還是Web規(guī)模的電子商務公司,都需要全文搜索。Doug Cutting在1999年出于全文搜索目的開發(fā)了Java庫Lucene。從那時起,Lucene成為全文搜索的行業(yè)標準。Elasticsearch是基于Lucene的全文本搜索引擎,最初由Shay Banon開發(fā)并于2010年發(fā)布。它是一個分布式,多租戶的全文本搜索引擎,提供REST API。
近來,Elasticsearch被廣泛用作搜索引擎和應用程序的可觀察性。結(jié)果,它在DB-Engines排名中排名第8,成為最受歡迎的數(shù)據(jù)庫和最受歡迎的搜索引擎:
> Image by Author (Data: DB-Engines)
在2020年Stack Overflow開發(fā)人員調(diào)查中,Elasticsearch排名第10位,這是全文搜索引擎的一項壯舉:
> Source: Stack Overflow Developer Survey, 2020
近年來,由于云計算和微服務的興起,可觀察性引起了人們的極大興趣。作為現(xiàn)代可觀察性堆棧的基石,Elasticsearch近年來獲得了巨大的關注:
> Source: DB-Engines
Google趨勢提供的數(shù)據(jù)還顯示,近年來Elasticsearch的興趣顯著上升:
> Source: Google Trends
在2000年代中期,F(xiàn)acebook迅速發(fā)展,需要大規(guī)模擴展的數(shù)據(jù)庫。不幸的是,市場上沒有可以滿足Facebook擴展需求的數(shù)據(jù)庫。受Google的Big Table論文(2006年)和Amazon的Dynamo論文(2007年)的影響,兩位Facebook工程師Avinash Lakshman(Amazon Dynamo論文的合著者)和Prashant Malik于2008年將Cassandra開發(fā)為分布式Wide Column Store數(shù)據(jù)庫。一個高度可擴展的數(shù)據(jù)庫,在行業(yè)中廣泛用于處理海量數(shù)據(jù)。
Cassandra是最流行的NoSQL數(shù)據(jù)庫和最流行的Wide Column Store數(shù)據(jù)庫之一。它是第9個最受歡迎的數(shù)據(jù)庫,如下所示:
> Image by Author (Data: DB-Engines)
Stack Overflow開發(fā)人員調(diào)查還將Cassandra排名為2020年的第12位:
> Source: Stack Overflow Developer Survey, 2020
作為處理大量OLAP工作負載的領先數(shù)據(jù)庫,Cassandra在2016年獲得了巨大的關注,并且仍保持這一水平:
> Source: DB-Engines
長期以來,Google趨勢對Cassandra也表現(xiàn)出穩(wěn)定的興趣:
> Source: Google Trends
當Oracle收購Sun Microsystems時,由于Sun Microsystems擁有MySQL,MySQL的未來尚不清楚。MySQL的共同創(chuàng)建者Michael Widenius派生了MySQL并創(chuàng)建了MariaDB。MariaDB是一個關系數(shù)據(jù)庫管理系統(tǒng),與MySQL協(xié)議和MySQL客戶端兼容。無需更改代碼即可輕松地用MariaDB服務器替換MySQL服務器。與MySQL相比,MariaDB更受社區(qū)驅(qū)動。
四大SQL數(shù)據(jù)庫主導著SQL數(shù)據(jù)庫域。作為該列表中最年輕的SQL數(shù)據(jù)庫,MariaDB很難獲得普及。
但是MariaDB做得很好,并且已經(jīng)是最受歡迎的數(shù)據(jù)庫之一,如下所示:
> Image by Author (Data: DB-Engines)
根據(jù)2020年Stack Overflow開發(fā)人員調(diào)查,它已經(jīng)超過了許多成熟的數(shù)據(jù)庫,例如Oracle和IBM DB2:
> Source: Stack Overflow Developer Survey, 2020
憑借眾多創(chuàng)新和分布式SQL功能,MariaDB是最流行的SQL數(shù)據(jù)庫之一,如下所示:
> Source: DB-Engines
此外,如Google趨勢所示,近年來它越來越受到關注:
> Source: Google Trends
1966年,IBM為Apollo程序開發(fā)了首批數(shù)據(jù)庫管理系統(tǒng)IMS(分層數(shù)據(jù)庫)之一。當IBM工程師Edgar F. Codd發(fā)表有關關系數(shù)據(jù)庫的開創(chuàng)性論文時,IBM不愿放棄他們的IMS數(shù)據(jù)庫。甲骨文發(fā)布了第一個關系數(shù)據(jù)庫后,IBM迅速改正了發(fā)展道路,并于1983年發(fā)布了Db2作為商業(yè)支持的RDBMS。最初,IBM發(fā)行了用于IBM大型機的Db2。1987年,IBM發(fā)行了適用于Windows,Linux和Unix系統(tǒng)的Db2 LUW。在這里,我將討論Db2 LUW,因為Db2家族還有其他數(shù)據(jù)庫。
多年以來,IBM Db2經(jīng)歷了許多重大變化,并且像Oracle一樣發(fā)展了很多。
Db2曾經(jīng)是市場的領導者,但由于數(shù)據(jù)庫格局競爭現(xiàn)在是多方面的,因此在最近幾年已經(jīng)失去了知名度。
但是,它仍然是大中型企業(yè)中最常用的數(shù)據(jù)庫之一,并且在流行度中享有突出的地位:
> Image by Author (Data: DB-Engines)
在具有新近度偏差的Stack Overflow Developer調(diào)查中,其排名很低:
> Source: Stack Overflow Developer Survey, 2020
近年來,Db2也沒有受到太多關注,如下所示:
> Source: DB-Engines
Google趨勢還證實了其持續(xù)下降的趨勢:
> Source: Google Trends
在此列表中,我顯示了2021年要使用的十個數(shù)據(jù)庫。RDBMS系統(tǒng)在該列表中占主導地位。MySQL和PostgreSQL是開源和免費數(shù)據(jù)庫的領導者,緊隨其后的是MS SQL。與MySQL兼容的MariaDB越來越受歡迎。
在商業(yè)數(shù)據(jù)庫中,Oracle在其最新版本中增加了許多增值功能,并朝著未來邁出了巨大的一步。盡管IBM Db2仍在大型組織中使用,但它會逐漸下降。
在NoSQL數(shù)據(jù)庫中,MongoDB(文檔數(shù)據(jù)庫),Redis(內(nèi)存中鍵值存儲),Cassandra(寬列數(shù)據(jù)庫)和Elasticsearch(全文搜索引擎)是它們領域的領導者。
該列表并不包含所有內(nèi)容,并且許多重要的數(shù)據(jù)庫類型也無法像NewSQL數(shù)據(jù)庫,Cloud Native Databases那樣進入前十名。但這將對2021年的頂級數(shù)據(jù)庫進行高層概述。
(本文由聞數(shù)起舞翻譯自Maximilian Beckers的文章《Top 10 Databases to Use in 2021》,轉(zhuǎn)載請注明出處,原文鏈接:https://towardsdatascience.com/top-10-databases-to-use-in-2021-d7e6a85402ba)
聯(lián)系客服