2

增廣見聞 - 資料庫引擎排行榜前 20 名盤點

 1 year ago
source link: https://blog.darkthread.net/blog/db-engines-ranking/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

增廣見聞 - 資料庫引擎排行榜前 20 名盤點

2023-03-17 10:50 PM 3 1,531

我過去的資料庫經驗以 RDBMS (關聯式資料庫)為主,近年來常聽到 NoSQL 但都沒實際碰過,直到年初試玩 Redis才踏出第一步,查找資料過程發現一堆沒看過的資料庫名字,為了怕被笑沒見過世面,決定來認識市場上的主流資料庫。

想了解當今的主流資料庫引擎,DB Engines Ranking 應是最權威的參考來源。

DB-Engines 排名的依據是「受歡迎程度/流行度」(Popularity) (非市佔率),其計算資料來源如下:參考

  • 網站上提及次數:以 Google / Bing 查詢結果數量來衡量
  • 網友感興趣程度:以 Google Trends 中的搜索頻率為準
  • 技術討論頻率:採計 Stack Overflow 和 DBA Stack Exchange 相關問題數量和感興趣用戶數量
  • 相關工作機會數量:計算求職搜索引擎 Indeed 和 Simply Hired 上的工作機會
  • 在 LinkedIn 個人檔案被提到次數
  • 提及的 Twitter 推文數量

之後會進行一些標準化及平均計算,以量化流行度,當系統 A 的值是系統 B 的兩倍,則代表平均各評估標準時相等於兩倍流行。

DB-Engines 排名並不衡量系統的安裝數量或在 IT 系統的使用情況,但基於「在討論或職務說明愈常被提及,可預期未來該系統使用愈普遍」,故 DB-Engines 排名可視為一種早期指標。

2023/02 的資料庫排名如下:

Fig1_638146615802290743.png
圖片來源

來認識前 20 名:

Fig2_638146615806689249.png

前三名 Oracle、MySQL、MSSQL 積分遙遙領先,大家也都耳熟能詳,這裡就不介紹了。

第四名 PostgreSQL (發音是 post-gress-Q-L) 跟 MySQL 一樣是開源,二者常被拿來比較。我自己的感覺,PostgreSQL 之於 MySQL,就像 Debian 之於 Ubuntu。前者偏向開發社群推動,標榜自由軟體精神;後者有商業公司支援,有免費的社群版及付費的商業授權版本。(註:免費未必是優點,在企業實務中,付錢完全不是問題,出包時有廠商出來坦才是重點) PostgreSQL 在功能上更先進,依循 SQL 標準,較易移轉到其他資料庫。MySQL 較輕巧易用、社群資源豐富。

第五名 MongoDB 是文件導向的 NoSQL 資料庫,資料以類似 JSON 的文件格式保存,為 NoSQL 資料庫之首。

第六名 Redis 是以 Key/Value 形式儲存資料的 NoSQL 資料庫,資料都存在記憶體,是它最大的特色與優勢,不適合長期保存資料,最常用於快取。

第七名 IBM DB2 是歷史悠久的老牌資料庫,二十多年前我剛出社會跟它打過交道,不過十幾年沒再聽人提起它,居然還在前七名讓我頗驚訝。

第八名 ElasticsearchELK 日誌中心化解決方案的開源資料庫,偏向全文搜尋引擎,一般會用在 Log 蒐集查詢,不太會當成應用程式的資料庫來源。

第九名 SQLite 是全球安裝數量最多的資料庫,背後有段奇妙的故事: FB 貼文

SQLite 是世上使用最普遍的資料庫(手機、飛機、太空... 無所不在),是 Dwayne Richard Hipp (DRH) 為奧斯卡·奧斯汀號驅逐艦(DDG-79 Oscar Austin)開發軟體時的副產品,當時因為對 Informix 資料庫不滿意,乾脆自己寫一套。
先寫了 Byte Code 引擎、再寫了 Compiler 將 SQL 指令轉成 Byte Code,SQLite 誕生~ 丟上 Internet 後迅速被 Motorola、AOL、Nokia、Mozilla、Android 採用。 有趣的是 DDG 79 最後並沒有採用 SQLite,因為客戶想要 Informix。(OS: 花大錢但出包時有廠商可以罵,無價!)
身為常常在造輪子的人,DRH 的這段註腳讓我咀嚼再三:
這是個瘋狂的點子,我要自己寫個資料庫引擎而不是裝個資料庫,如果你去徵詢專家的看法,他們會說「不可能,不會成功的,別傻了」
所幸,我不認識任何專家,所以我還是幹了,結果事情就變成這樣。我想,也許不要什麼都聽專家的意見,做你覺得合理的事,解決你的問題就對了。
不過,如果當初就知道這有多困難,我應該不會自已寫。

第十名 Microsoft Access,與其說是資料庫,感覺更像 Office 軟體的一員。記憶中二十幾年前是小型資料庫應用的優先選項之一,甚至能當 ASP 網站的資料來源。我一樣很久沒聽到它的消息了,但它可能還散佈在辦公室角落,是許多助理妹妹小祕書們不可或缺的好夥伴。

第 11 名 Snowflake,是一個 SaaS 的資料庫平台,這幾年快速竄起。

第 12 名 Cassandra (社群常簡稱為 C*),為開源式分散 NoSQL 資料庫,採用 Wide Column 模型,每列資料由 Row Key 唯一標識,最多可以有 20 億個欄,每欄有其 Column Key 標識,可理解為個二維 Key-Value 儲存體 (<key1, map<key2,value>>)。

第 13 名 MariaDB 是 MySQL 的 Fork 版本,由 MySQL 原始開發者帶領社群開發,有商業支援,與 MySQL 高度相容,但堅持 GNU GPL 開源精神,旨在防止 MySQL 在 Oracle 收購後走向封閉。

第 14 名 Splunk 常用於 SIEM、日誌管理... 等機器資料的蒐集與整理,跟 Elasticsearch 的定位有點像,偏向搜尋引擎。

第 15 名 Amazon DynamoDB 是 AWS 的全受管、無伺服器、鍵值 NoSQL 資料庫。

第 16 名 Azure SQL Database 是微軟的 PaaS 雲端資料庫,與 SQL Server 完全相容,程式換連線字串便能改接。好處是擴充容易,費用彈性。(延伸閱讀:Azure 成本管理 03 - SQL Database 費用解析和選擇定價層 by 黯雲端記事錄)

第 17 名 Hive 是基於 Hadoop 的資料倉儲工具,離我有點遠,跳過。

第 18 名 Teradata 一樣是大數據、資料倉儲,我再跳。

第 19 名 Databricks 還是巨量資料、資料湖、大數據類,我繼續跳。

第 20 名 Neo4j 是一種 Graph Database,不同於 RDBMS,用節點跟關係組織資料。在社交網路圖譜、企業網路圖譜、反洗錢/反詐欺多維關聯分析等應用情場下特別吃香。

整理完畢,稍微緩解一些資訊焦慮,哈!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK