目前最靠譜的10個數據庫軟件「數據庫軟件哪個好用」

MySQL,Oracle,PostgreSQL,Microsoft SQL Server,MongoDB,Redis,Elasticsearch,Cassandra,MariaDB,IBM Db2

2021年推薦使用的十大數據庫

> Image by Tumisu from Pixabay

數據庫是任何軟件應用程序的基石。您將需要一個或多個數據庫來開發幾乎所有類型的軟件應用程序:Web,企業,嵌入式系統,實時系統,AI,ML,HPC,區塊鏈,IoT和許多其他應用程序。

二十年前,選擇數據庫要容易得多。在大多數情況下,您可能選擇了一個關係數據庫系統,然後就完成了。但是在現代軟件開發中,選擇正確的數據庫是最具挑戰性的任務之一。

隨着微服務,雲,分佈式應用程序,全局擴展,半結構化數據,大數據,快速數據,低延遲數據的興起:現在,各種NoSQL都加入了傳統的SQL數據庫。NewSQL和Cloud數據庫。

目前有343個數據庫。在這裡,我將根據以下標準從它們中選擇十個數據庫:

  • 主要特點
  • 人氣度
  • 趨向
  • 主流用途
  • 光明的未來

我將為每個數據庫討論以下內容:

  • 概述,包括簡短的歷史記錄。
  • 5個主要功能。
  • 什麼時候使用它們。
  • 什麼時候不使用它們。
  • 人氣。
  • 趨勢。
  • 數據庫即服務(DBaaS)。
  • 備擇方案。

1. MySQL

1995年,兩位軟件工程師Michael Widenius和David Axmark創建了開源關係數據庫管理系統(RDBMS)MySQL。自成立以來,MySQL因其企業級功能,免費,靈活(GPL)社區許可證和升級的商業許可證而迅速在行業和社區中流行。在開源數據庫中,PostgreSQL專註於創新和高級功能,而MySQL則專註於健壯性,穩定性和成熟度。

今天,MySQL是最流行和使用最廣泛的SQL數據庫之一。它也是Web應用程序中最常用的數據庫之一。世界上一些最大的Web規模應用程序(例如Facebook,Uber)使用MySQL。

5個主要功能

  • 具有兩種許可模式的開源RDBMS:免費的Community Server和專有的Enterprise Server。
  • 提供ACID交易保證(使用InnoDB引擎)。就CAP而言,它提供了即時的一致性。
  • 通過其Shared Nothing MySQL集群提供水平分區(分片)。結果,它提供了高可用性和高吞吐量,並具有低延遲和近乎線性的縮放比例。
  • 藉助其MySQL群集,它可以提供多主ACID事務。
  • 多模型數據庫,同時支持結構化數據(SQL)和半結構化數據(JSON)。

何時使用MySQL

  • 具有ACID事務保證的結構化數據(SQL)。
  • 水平可伸縮性是一項關鍵要求,尤其是在寫入大量數據時。
  • 多主ACID交易是基本要求。
  • 數據安全性是一項關鍵功能。
  • 需要一個聚合數據庫,即,一個用於OLTP和OLAP工作負載的數據庫。

什麼時候不使用MySQL

  • 在全球分佈式數據庫中應處理數百萬個事務的情況下,需要使用「分佈式SQL」。
  • 數據是非常相關的(例如,社交媒體),即像圖表一樣的數據。
  • 數據是半結構化的,即具有高級查詢功能的JSON數據。
  • 必須具有高級數據保護功能(例如,屏蔽,模糊處理,限制)。

MySQL即服務

  • MySQL數據庫服務(多雲,OLTP和OLAP)
  • ScaleGrid(水平縮放)
  • Vitess(水平縮放)
  • 適用於MySQL的Aiven(多雲)
  • 適用於MySQL的Amazon RDS
  • Oracle MySQL雲服務(水平擴展)
  • Azure MySQL數據庫
  • 適用於MySQL的Google Cloud SQL

備擇方案

  • 甲骨文
  • PostgreSQL
  • Microsoft SQL服務器
  • Maria數據庫
  • IBM Db2
  • 亞馬遜Aurora
  • Google Cloud Spanner

人氣:

MySQL Community Edition是業界使用最廣泛的免費數據庫。而且,其商業版本在行業中被廣泛使用。

最著名的數據庫排名網站DB-Engines將MySQL排名第二,僅次於Oracle:

2021年推薦使用的十大數據庫

> Image by Author (data: DB-Engines)

2020年Stack Overflow開發人員調查將MySQL列為2020年最受歡迎的數據庫:

2021年推薦使用的十大數據庫

> Source: Stack Overflow Developer Survey, 2020

趨勢

擁有25年歷史的MySQL並不是目前最流行的數據庫。但是與其他較舊的數據庫不同,它仍然保持較高的吸引力,如下所示:

2021年推薦使用的十大數據庫

> Source: DB-Engines

此外,Google趨勢在過去幾年中顯示出相對穩定的圖表:

2021年推薦使用的十大數據庫

> Source: Google Trends

2.甲骨文

當埃德加·科德(Edgar F. Codd)在關係數據庫管理系統(RDBMS)上發表其革命性論文「大型共享數據庫的數據關係模型」(1970)時,它徹底改變了數據庫系統的面貌。該論文特別啟發了年輕的軟件工程師Larry Ellison(Oracle公司現任CTO)。後來,他在1979年創建了世界上第一個可商用的RDBMS系統Oracle。從那時起,Oracle一直是領先的商業RDMBS系統,並在Unix和Linux系統中佔據主導地位。在過去的41年中,Oracle隨着時間的推移不斷發展,並為RDBMS和整個數據庫系統的創新做出了貢獻。

目前,Oracle是商業支持的第一數據庫,也是整體上使用廣泛的RDBMS之一。它的最新版本(21.c)添加了許多創新功能,這些功能將使其在未來幾年成為有吸引力的選擇。

5個主要功能

  • 專有RDBMS。
  • 提供ACID交易保證。就CAP而言,它可以作為單個服務器提供即時的一致性。
  • 支持結構化數據(SQL),半結構化數據(JSON,XML),空間數據和RDF存儲的高級多模型數據庫。根據特定的數據模型提供多種訪問模式
  • 提供區塊鏈表。
  • 同時支持OLTP和OLAP工作負載。

何時使用Oracle

  • 如果公司想要擁有一個融合數據庫或主數據庫(一個用於OLTP和OLAP的數據庫)。
  • 傳統的事務性工作負載具有結構化(SQL)數據,並且ACID事務保證是關鍵條件。
  • 區塊鏈表是必需的。
  • 用於數據倉庫。
  • 包括地理空間數據類型的多模型數據庫是必不可少的要求。

何時不使用Oracle

  • 如果公司想在數據庫上省錢。
  • 多主設備ACID事務是必須具備的功能。
  • 數據是半結構化的,即具有高級查詢功能的JSON數據。
  • 數據是非常相關的(例如,社交媒體),即像圖表一樣的數據。

Oracle即服務

  • Oracle融合數據庫
  • 適用於Oracle的Amazon RDS

備擇方案

  • MySQL
  • PostgreSQL
  • Microsoft SQL服務器
  • Maria數據庫
  • IBM Db2
  • 亞馬遜Aurora
  • Google Cloud Spanner

人氣度

四十年來,Oracle為客戶提供了穩定,成熟的企業級數據庫。儘管它面臨來自開放源代碼SQL數據庫和NoSQL數據庫的激烈競爭,但它仍然是DB-Engines排名最高的數據庫系統:

2021年推薦使用的十大數據庫

> Image by Author (Data: DB-Engines)

但是,在Stack Overflow開發人員調查中,由於該列表受開源數據庫的支配,因此它排名第8位:

2021年推薦使用的十大數據庫

> Source: Stack Overflow Developer Survey, 2020

趨勢

Oracle可能以其最新版本贏得了大獎。結果,它在最近幾年中獲得了很大的吸引力。考慮到市場正在轉向開源數據庫,這是一個壯舉:

2021年推薦使用的十大數據庫

> Source: DB-Engines

此外,Google的趨勢還顯示出Oracle的曲線非常平坦,這在商業數據庫中很少見:

2021年推薦使用的十大數據庫

> Source: Google Trends

3. PostgreSQL

自1970年代初以來,加州大學伯克利分校就致力於通過其開創性的數據庫項目Ingres來塑造現代數據庫管理系統。1986年,傳奇人物Michael Stonebraker領導了POSTGRES(Post-Ingres)項目,以解決現有數據庫項目的問題。PostgreSQL誕生於POSTGRES項目的一部分,該項目是一個關係數據庫管理系統。在過去的30年中,PostgreSQL在現代數據庫開發方面處於領先地位,做出了許多創新,邁克爾·斯通布雷克(Michael Stonebraker)於2014年獲得圖靈獎,主要是因為他在PostgreSQL中的工作。

如今,PostgreSQL是最常用的數據庫之一。它也是最先進的開源關係數據庫。

5個主要功能

  • 具有非常允許的PostgreSQL許可證的開源RDMBS。PostgreSQL有許多擴展,具有各種高級功能。
  • 提供ACID交易保證。就CAP而言,它可以作為單個服務器提供即時的一致性。
  • Citus Data是PostgreSQL的擴展,提供了令人垂涎的分佈式SQL功能,即具有SQL數據庫的事務保證和NoSQL數據庫的水平擴展的數據庫。
  • 它提供了更多的高級索引,如部分索引,布隆過濾器。同樣,在PostgreSQL中創建索引也是非阻塞的。
  • 它是功能豐富的多模型數據庫,支持結構化數據(SQL),半結構化數據(JSON,XML),鍵值,空間數據。

何時使用PostgreSQL

  • 數據是結構化(SQL),並且ACID事務保證是具有嚴格數據完整性的關鍵條件。
  • 當需要「分佈式SQL」時,應在全球分佈式數據庫中處理數百萬個事務。
  • 需要一個複雜的查詢計劃器。
  • 需要高級可靠性和災難恢復,例如PITR,活動待機。
  • 期望包含地理空間數據類型的多模型數據庫。

何時不使用PostgreSQL

  • 多主設備ACID事務是必須具備的功能。
  • 數據是半結構化的,即具有高級查詢計劃器的JSON數據。
  • 需要一個融合數據庫(OLTP和OLAP)。
  • 數據是非常相關的(例如,社交媒體),即像圖一樣的數據。

PostgreSQL即服務

  • PostgreSQL的EDB(水平擴展)
  • CitusData(分佈式SQL)
  • ScaleGrid(水平縮放)
  • PostgreSQL的Aiven(多雲)
  • 適用於PostgreSQL的Amazon RDS
  • Azure PostgreSQL數據庫
  • PostgreSQL的Google Cloud SQL

備擇方案

  • MySQL
  • 甲骨文
  • Microsoft SQL服務器
  • Maria數據庫
  • IBM Db2
  • 亞馬遜Aurora
  • Google Cloud Spanner

人氣度

PostgreSQL是最古老的開源和免費數據庫之一。它具有巨大的社區支持,並在社區和行業中得到使用。

根據數據庫引擎,它是最受歡迎的數據庫之一:

2021年推薦使用的十大數據庫

> Image by Author (Data: DB-Engines)

根據Stack Overflow開發人員調查,它是2020年第二受歡迎的數據庫:

2021年推薦使用的十大數據庫

> Source: Stack Overflow Developer Survey, 2020

趨勢

由於其先進的功能和創新,即使在PostgreSQL引入30年後,它也獲得了很多宣傳,如下所示:

2021年推薦使用的十大數據庫

> Source: DB-Engines

Google趨勢在最近幾年也顯示出對PostgreSQL的吸引力增加,這表明對PostgreSQL的興趣日益增加:

2021年推薦使用的十大數據庫

> Source: Google Trends

4. Microsoft SQL Server

1988年,Microsoft與Ashton-Tate和Sybase一起創建了RDBMS作為Sybase SQL Server變體。1989年,他們發佈了Microsoft SQL Server的第一個版本。儘管不像其他產品那麼創新或先進,但是Microsoft SQL Server多年來經歷了重大更新和大修。最初針對IBM OS / 2發行,不久又針對Windows系統發行。在過去的三十年中,它是Windows系統中佔主導地位的商業中型數據庫。

當前,它是領先的商業數據庫系統之一,Microsoft提供了出色的工具支持。

5個主要功能

  • 具有各種許可證的專有RDBMS:Developer和Express(免費),Standard和Enterprise(商業)。
  • 提供ACID交易保證。就CAP而言,它可以作為單個服務器提供即時的一致性。
  • 通過T-SQL,.NET語言,R,Python和Java支持服務器端腳本。
  • 它是一個多模型數據庫,支持結構化數據(SQL),半結構化數據(JSON)和空間數據。
  • 對本地和雲的出色工具支持。此外,Azure提供了輕鬆將本地SQL Server遷移到雲的工具。

何時使用SQL Server

  • 具有ACID事務保證的數據結構化(SQL)。
  • 該開發平台與其他Microsoft產品緊密結合在一起。
  • Azure雲是首選的公共雲技術,首選託管SQL數據庫。
  • 一家公司已經擁有MS-SQL數據庫,並希望在Cloud中對其進行遷移。

何時不使用SQL Server

  • 對於數據庫預算較低的公司而言並不理想。
  • 多主設備ACID事務是必須具備的功能。
  • 數據是半結構化的,即JSON數據,並且需要高級查詢操作。
  • 需要分佈式SQL數據庫。
  • 需要聚合數據庫。

SQL Server即服務

  • Azure SQL(水平擴展)
  • 適用於SQL Server的Amazon RDS
  • Google Cloud上的SQL Server

備擇方案

  • MySQL
  • 甲骨文
  • PostgreSQL的
  • Maria數據庫
  • IBM Db2
  • 亞馬遜Aurora
  • Google Cloud Spanner

人氣:

MS SQL是Windows平台中最受歡迎的商業數據庫,也是Azure Cloud中首選的SQL數據庫。由於這些事實,根據DB-Engines排名,它仍然是第三受歡迎的數據庫:

2021年推薦使用的十大數據庫

> Image by Author (Data: DB-Engines)

它也是Stack Overflow Developer調查中第三大最受歡迎的數據庫:

2021年推薦使用的十大數據庫

> Source: Stack Overflow Developer Survey, 2020

趨勢

MS SQL是此列表中最古老的數據庫之一。儘管它是一個穩定可靠的數據庫,但它並不是最具創新性或先進性的數據庫,並且呈下降趨勢,如DB-Engines趨勢所示:

2021年推薦使用的十大數據庫

> Source: DB-Engines

多年來,Google趨勢顯示MS SQL呈下降趨勢,並且在2021年也不會改變:

2021年推薦使用的十大數據庫

> Source: Google Trends

5. MongoDB

當我們需要在數據庫中保存半結構化數據(例如JSON,XML)時,有很多用例。此外,使用面向對象的編程語言向RDBMS加載和訪問數據需要附加的應用程序級映射(對象關係阻抗不匹配)。為了解決這些問題,尤其是處理文檔數據時,公司10gen(現為MongoDB Inc.)在2009年發佈了MongoDB作為第一個文檔數據庫。在接下來的十年中,MongoDB進行了重大改進。它解決了許多缺點(例如安全性),並創新並開創了許多功能。

當前,它是主要的文檔數據庫和主要的NoSQL數據庫。

5個主要功能

  • 具有各種許可證的開放式NoSQL文檔數據庫(BSON):社區服務器(免費),企業服務器(商業),Atlas(在雲中管理)。
  • 通過自動共享提供水平縮放,並通過主從節點進行內置複製。就CAP而言,它是CP(一致性和分區容忍)。
  • 具有快照隔離功能的分佈式多文檔ACID事務。
  • 豐富而強大的查詢語言,使用聚合管道進行複雜的查詢。它還支持Map-Reduce查詢,文本搜索,圖形搜索和地理搜索。
  • MongoDB Inc.還提供了基於MongoDB構建的全文本搜索引擎(Atlas Search)和數據湖(Atlas Data Lake)。

何時使用MongoDB

  • 數據是具有高級查詢功能的文檔或半結構化數據(例如JSON,XML)。
  • 模式不斷變化的快速應用程序開發。
  • 大型結構化數據被規範化為多個SQL表,並且在性能和複雜性方面受到影響。
  • 數據是無架構的。
  • 對於半結構化數據,一致性優於可用性。

何時不使用MongoDB

  • 數據是結構化數據。
  • 數據是非常相關的(例如,社交媒體),即像圖表一樣的數據。
  • 對於數據倉庫(OLAP數據庫)。
  • 多主寫入對於繁重的寫入操作是必需的。
  • 高可用性比一致性優先。

MongoDB即服務

  • MongoDB Atlas(全局擴展)
  • ScaleGrid MongoDB(託管MongoDB)
  • 雲數據庫MongoDB版

備擇方案

  • 亞馬遜DynamoDB
  • Azure Cosmos數據庫
  • 亞馬遜文件數據庫
  • Couchbase
  • CouchDB
  • Google Cloud Firestore

人氣度

作為著名的文檔數據庫,MongoDB近年來正迅速普及,並且在數據庫引擎排名中排名第五。

2021年推薦使用的十大數據庫

> Image by Author (Data: DB-Engines)

2020年Stack Overflow開發人員調查還使MongoDB排名第五:

2021年推薦使用的十大數據庫

> Source: Stack Overflow Developer Survey, 2020

趨向

如數據庫引擎所示,MongoDB近年來正逐漸受到青睞:

2021年推薦使用的十大數據庫

> Source: DB-Engines

Google趨勢還顯示了MongoDB的上升趨勢:

2021年推薦使用的十大數據庫

> Source: Google Trends

6. Redis

2009年,意大利開發人員Salvatore Sanfilippo試圖改善其創業公司的可擴展性,並希望開發一個實時日誌分析器。他在使用傳統數據庫系統時遇到了嚴重的擴展問題,並將Redis創建為分佈式內存中鍵值存儲。Redis很快就受到社區的歡迎,並發展成為高度可擴展的內存中數據結構存儲,已在業界廣泛使用。

5個主要功能

  • 具有BSD 3子句許可證的Open Core分佈式內存中NoSQL數據結構存儲。
  • 用作內存中的分佈式鍵值數據庫。也可用作分佈式緩存(有或沒有數據庫)或具有可選持久性的消息代理。
  • 支持多種數據結構:字符串,哈希,列表,集合,帶範圍查詢的排序集合,位圖,超日誌,地理空間索引和流。
  • 通過Redis Cluster的內置複製,自動故障轉移和分片功能,具有高度可擴展性。就CAP而言,它是CP(一致性和分區容忍)。
  • 高級緩存功能(LRU逐出策略,TTL受限的密鑰)。

何時使用Redis

  • 需要分佈式的內存中數據結構。
  • 需要分佈式和企業級緩存,例如,以提高數據庫訪問性能。
  • 用於會話管理。
  • 實時用例,例如庫存系統。
  • 對於大量的數據集。

什麼時候不使用Redis

  • 一小部分數據需要單服務器內存數據結構存儲。
  • 具有ACID事務保證的主數據存儲(OLTP數據庫)。
  • 一小部分數據需要單服務器緩存。
  • 數據是非常相關的(例如,社交媒體),即像圖表一樣的數據。
  • 需要OLAP數據庫時。

Redis即服務

  • Redis企業雲(多雲)
  • ScaleGrid Redis(託管Redis)
  • 針對Redis的Aiven(多雲)
  • 亞馬遜ElastiCache
  • Redis的Azure緩存
  • Google Memorystore

備擇方案

  • Memcached
  • Hazelcast
  • etcd
  • Ehcache
  • Riak KV

人氣:

幾乎所有企業都使用分佈式內存數據存儲和分佈式緩存。因此,Redis在行業中非常受歡迎,如下所示:

2021年推薦使用的十大數據庫

> Image by Author (Data: DB-Engines)

Stack Overflow開發人員調查還將Redis列為整體排名第六的最受歡迎的數據庫:

2021年推薦使用的十大數據庫

> Source: Stack Overflow Developer Survey, 2020

趨勢

隨着雲和微服務的興起,Redis在最近幾年受到了極大的關注,如下所示:

2021年推薦使用的十大數據庫

> Source: DB-Engines

自成立以來,Google趨勢也顯示了Redis趨勢的直線上升:

2021年推薦使用的十大數據庫

> Source: Google Trends

7. Elasticsearch

無論是小型創業公司還是Web規模的電子商務公司,都需要全文搜索。Doug Cutting在1999年出於全文搜索目的開發了Java庫Lucene。從那時起,Lucene成為全文搜索的行業標準。Elasticsearch是基於Lucene的全文本搜索引擎,最初由Shay Banon開發並於2010年發佈。它是一個分佈式,多租戶的全文本搜索引擎,提供REST API。

5個主要功能

  • 開放核心,分佈式搜索引擎。
  • 通過自動分片提供水平縮放。它是最可擴展的搜索引擎。就CAP而言,它是AP(可用和分區容忍)。
  • 提供REST API,並支持結構化和無模式數據(JSON)。因此,它特別適合分析記錄或監視數據。
  • 支持自動複製和跨集群複製(CCR)。
  • 強大的「彈性堆棧」的一部分(Elasticsearch,Kibana,Logstash,Beats)。組織在可觀察性領域中大量使用它。

何時使用Elasticsearch

  • 需要中等到高級的全文搜索。
  • 先進的機器學習功能(例如欺詐檢測)需要近乎實時的全文搜索。
  • 具有高級工具支持(Kibana,Logstash,Beats)的搜索引擎。
  • 適用於大量數據集。
  • 使用半結構化數據(例如JSON,日誌數據)。

何時不使用Elasticsearch

  • 僅需要基本的全文本搜索功能。
  • 需要符合ACID的主數據庫(OLTP數據庫)。
  • 數據集很小,只有結構化數據。
  • 無需複雜工具(Kibana,Logstash),僅需要全文搜索。
  • 當尖端但昂貴的功能(例如高級機器學習)不是關鍵要求時。

Elasticsearch即服務

  • 彈性雲(多雲)
  • 針對Elasticsearch的Aiven(多雲)
  • Amazon Elasticsearch服務

備擇方案

  • Apache Solr
  • Splunk
  • Algolia

人氣:

近來,Elasticsearch被廣泛用作搜索引擎和應用程序的可觀察性。結果,它在DB-Engines排名中排名第8,成為最受歡迎的數據庫和最受歡迎的搜索引擎:

2021年推薦使用的十大數據庫

> Image by Author (Data: DB-Engines)

在2020年Stack Overflow開發人員調查中,Elasticsearch排名第10位,這是全文搜索引擎的一項壯舉:

2021年推薦使用的十大數據庫

> Source: Stack Overflow Developer Survey, 2020

趨勢

近年來,由於雲計算和微服務的興起,可觀察性引起了人們的極大興趣。作為現代可觀察性堆棧的基石,Elasticsearch近年來獲得了巨大的關註:

2021年推薦使用的十大數據庫

> Source: DB-Engines

Google趨勢提供的數據還顯示,近年來Elasticsearch的興趣顯着上升:

2021年推薦使用的十大數據庫

> Source: Google Trends

8.Cassandra

在2000年代中期,Facebook迅速發展,需要大規模擴展的數據庫。不幸的是,市場上沒有可以滿足Facebook擴展需求的數據庫。受Google的Big Table論文(2006年)和Amazon的Dynamo論文(2007年)的影響,兩位Facebook工程師Avinash Lakshman(Amazon Dynamo論文的合著者)和Prashant Malik於2008年將Cassandra開發為分佈式Wide Column Store數據庫。一個高度可擴展的數據庫,在行業中廣泛用於處理海量數據。

5個主要功能

  • 帶有Apache License 2.0的開放式核心,分佈式,寬列存儲數據庫。
  • 用作OLAP數據庫(例如,數據倉庫)來處理龐大的數據量。也用作時間序列數據庫。
  • 提供線性水平縮放和具有自動分片功能的最具擴展性的數據庫之一。就CAP而言,它是AP(可用和分區容忍)。
  • 具有自動複製和多數據中心複製的分散式數據庫(無鉛)。結果,它是容錯的,沒有單點故障。
  • 具有用戶友好型和類似SQL的查詢語言:Cassandra查詢語言(CQL)。

何時使用Cassandra

  • 作為典型的OLAP數據庫,例如,數據倉庫。
  • 作為具有大量寫操作的時間序列數據庫。
  • Web Scale應用程序需要以線性可伸縮性處理大量的寫入和讀取操作。
  • 對於數據丟失可以接受的高耐用性使用案例。

何時不使用Cassandra

  • 作為需要ACID交易保證的主數據庫(OLTP)。
  • 如果不需要線性可伸縮性或不需要高可用性。
  • 如果頻繁刪除數據,則其性能會下降(「墓碑」)。
  • 它基於JVM,並且需要更多的Node,並導致大量的Cloud費用。基於C ++的Cassandra兼容ScyllaDB是節省Cloud賬單的更好選擇。

卡桑德拉即服務

  • DataStax Astra(多雲)
  • Apache Cassandra的Aiven(多雲)
  • Amazon Managed Apache Cassandra服務

備擇方案

  • HBase
  • ScyllaDB
  • Azure Cosmos數據庫
  • Google Cloud Bigtable
  • 亞馬遜Keyspaces

人氣:

Cassandra是最流行的NoSQL數據庫和最流行的Wide Column Store數據庫之一。它是第9個最受歡迎的數據庫,如下所示:

2021年推薦使用的十大數據庫

> Image by Author (Data: DB-Engines)

Stack Overflow開發人員調查還將Cassandra排名為2020年的第12位:

2021年推薦使用的十大數據庫

> Source: Stack Overflow Developer Survey, 2020

趨勢

作為處理大量OLAP工作負載的領先數據庫,Cassandra在2016年獲得了巨大的關注,並且仍保持這一水平:

2021年推薦使用的十大數據庫

> Source: DB-Engines

長期以來,Google趨勢對Cassandra也表現出穩定的興趣:

2021年推薦使用的十大數據庫

> Source: Google Trends

9. MariaDB

當Oracle收購Sun Microsystems時,由於Sun Microsystems擁有MySQL,MySQL的未來尚不清楚。MySQL的共同創建者Michael Widenius派生了MySQL並創建了MariaDB。MariaDB是一個關係數據庫管理系統,與MySQL協議和MySQL客戶端兼容。無需更改代碼即可輕鬆地用MariaDB服務器替換MySQL服務器。與MySQL相比,MariaDB更受社區驅動。

5個主要功能

  • 具有GPL v2許可證的開源RDBMS。它具有兩種許可模式:免費的社區服務器和商業企業服務器。
  • 提供ACID交易保證(使用InnoDB引擎)。就CAP而言,它可以作為單個服務器提供即時的一致性。
  • 藉助其存儲引擎「 ColumnStore」,MariaDB提供具有大規模並行分佈式數據架構的列式存儲。它還通過其MaxScale和Spider Engine提供水平分區(分片)。因此,MariaDB也適合作為OLAP數據庫。
  • 藉助其圖形計算引擎「 OQGRAPH」,它支持分層和複雜的圖形數據類型。
  • 藉助Xpand智能存儲,它可以立即提供「分佈式SQL」功能。結果,它每秒提供數百萬個事務。

何時使用MariaDB

  • 數據是結構化(SQL),並且ACID事務保證是關鍵條件。
  • 在全球分佈式數據庫中應處理數百萬個事務的情況下,需要使用「分佈式SQL」。
  • 需要多主群集和多節點數據倉庫(OLAP)。
  • 需要一個多模型數據庫,即一個數據庫來處理結構化,半結構化,圖形和柱狀數據。
  • 需要聚合數據庫,即,一個用於OLTP,OLAP和Graph工作負載的數據庫。

何時不使用MariaDB

  • 多主設備ACID事務是必須具備的功能。
  • 數據是半結構化的,即需要JSON數據和高度高級的查詢功能。
  • 希望使用高級索引,例如降序,功能性和不可見性。
  • 需要高級身份驗證和授權(例如密碼重用策略,部分撤銷)。

MariaDB即服務

  • SkySQL(分佈式SQL)
  • 適用於MariaDB的Amazon RDS
  • 適用於MariaDB的Azure數據庫

備擇方案

  • 的MySQL
  • 甲骨文
  • PostgreSQL的
  • Microsoft SQL服務器
  • IBM Db2
  • 亞馬遜Aurora
  • Google Cloud Spanner

人氣:

四大SQL數據庫主導着SQL數據庫域。作為該列表中最年輕的SQL數據庫,MariaDB很難獲得普及。

但是MariaDB做得很好,並且已經是最受歡迎的數據庫之一,如下所示:

2021年推薦使用的十大數據庫

> Image by Author (Data: DB-Engines)

根據2020年Stack Overflow開發人員調查,它已經超過了許多成熟的數據庫,例如Oracle和IBM DB2:

2021年推薦使用的十大數據庫

> Source: Stack Overflow Developer Survey, 2020

趨向

憑藉眾多創新和分佈式SQL功能,MariaDB是最流行的SQL數據庫之一,如下所示:

2021年推薦使用的十大數據庫

> Source: DB-Engines

此外,如Google趨勢所示,近年來它越來越受到關註:

2021年推薦使用的十大數據庫

> Source: Google Trends

10. IBM Db2

1966年,IBM為Apollo程序開發了首批數據庫管理系統IMS(分層數據庫)之一。當IBM工程師Edgar F. Codd發表有關關係數據庫的開創性論文時,IBM不願放棄他們的IMS數據庫。甲骨文發佈了第一個關係數據庫後,IBM迅速改正了發展道路,並於1983年發佈了Db2作為商業支持的RDBMS。最初,IBM發行了用於IBM大型機的Db2。1987年,IBM發行了適用於Windows,Linux和Unix系統的Db2 LUW。在這裡,我將討論Db2 LUW,因為Db2家族還有其他數據庫。

多年以來,IBM Db2經歷了許多重大變化,並且像Oracle一樣發展了很多。

5個主要功能

  • Db2是具有ACID交易保證的專有RDBMS。它具有不同的許可證:社區(免費),標準和高級(商業)。
  • 支持結構化數據(SQL),半結構化數據(JSON)和圖形數據的最先進的多模型數據庫之一。
  • 它也是一個聚合數據庫(或主數據庫),並且通過IBM BLU Acceleration(內存中計算,大規模並行計算,基於列的Db2影子表)具有出色的OLAP支持。
  • 對AI的本地支持。
  • 通過Db2 pureScale提供水平縮放。

何時使用Db2

  • 是融合數據庫還是主數據庫(一個通用數據庫)是關鍵要求。
  • 作為具有ACID事務保證的主數據庫(OLTP數據庫)。
  • 數據庫中的AI功能是競爭優勢所必需的。
  • 作為OLAP數據庫(例如,數據倉庫)。
  • 該公司已經在使用IBM Cloud或IBM Cloud Pack for Data。

何時不使用Db2

  • 如果公司想省錢或節省預算。
  • 多主設備ACID事務是必須具備的功能。
  • 數據是半結構化的,即具有高級查詢功能的JSON數據。
  • 沒有AI功能的純SQL數據庫是必需的。
  • 僅將Azure或Google Cloud用作雲提供程序時。

Db2即服務

  • IBM Db2 on Cloud
  • AWS Marketplace上的Db2工作組

備擇方案

  • MySQL
  • 甲骨文
  • PostgreSQL的
  • Microsoft SQL服務器
  • Maria數據庫
  • 亞馬遜Aurora
  • Google Cloud Spanner

人氣:

Db2曾經是市場的領導者,但由於數據庫格局競爭現在是多方面的,因此在最近幾年已經失去了知名度。

但是,它仍然是大中型企業中最常用的數據庫之一,並且在流行度中享有突出的地位:

2021年推薦使用的十大數據庫

> Image by Author (Data: DB-Engines)

在具有新近度偏差的Stack Overflow Developer調查中,其排名很低:

2021年推薦使用的十大數據庫

> Source: Stack Overflow Developer Survey, 2020

趨勢

近年來,Db2也沒有受到太多關注,如下所示:

2021年推薦使用的十大數據庫

> Source: DB-Engines

Google趨勢還證實了其持續下降的趨勢:

2021年推薦使用的十大數據庫

> Source: Google Trends

結論

在此列表中,我顯示了2021年要使用的十個數據庫。RDBMS系統在該列表中佔主導地位。MySQL和PostgreSQL是開源和免費數據庫的領導者,緊隨其後的是MS SQL。與MySQL兼容的MariaDB越來越受歡迎。

在商業數據庫中,Oracle在其最新版本中增加了許多增值功能,並朝着未來邁出了巨大的一步。儘管IBM Db2仍在大型組織中使用,但它會逐漸下降。

在NoSQL數據庫中,MongoDB(文檔數據庫),Redis(內存中鍵值存儲),Cassandra(寬列數據庫)和Elasticsearch(全文搜索引擎)是它們領域的領導者。

該列表並不包含所有內容,並且許多重要的數據庫類型也無法像NewSQL數據庫,Cloud Native Databases那樣進入前十名。但這將對2021年的頂級數據庫進行高層概述。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/281082.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-21 13:15
下一篇 2024-12-21 13:15

相關推薦

發表回復

登錄後才能評論