Percona 的老板 Peter Zaitsev最近發(fā)表一篇博客,討論了MySQL是否還能跟上PostgreSQL的腳步。Percona 作為MySQL 生態(tài)扛旗者,Percona 開發(fā)了知名的PT系列工具,MySQL備份工具,監(jiān)控工具與發(fā)行版。他們的看法在相當(dāng)程度上代表了 MySQL 社區(qū)的想法,讀來讓人倍感噓唏。
作者:Peter Zaitsev[1],Percona 老板,原文:How Can MySQL Catch Up with PostgreSQL’s Momentum?[2]
譯者:馮若航[3],Vonng,Pigsty[4]作者,PostgreSQL 大法師,數(shù)據(jù)庫老司機,云計算泥石流。
MySQL還能跟上PostgreSQL的步伐嗎?
當(dāng)我與MySQL社區(qū)的老前輩交談時,我經(jīng)常聽到這樣的問題:“為什么MySQL如此出色,依然比PostgreSQL更受歡迎(至少根據(jù)DB-Engines的統(tǒng)計方法),但它的地位卻在不斷下降,而PostgreSQL的受歡迎程度卻在不可阻擋地增長?” 在MySQL 生態(tài)能做些什么扭轉(zhuǎn)這一趨勢嗎?讓我們來深入探討一下!
讓我們看看為什么PostgreSQL一直表現(xiàn)如此強勁,而MySQL卻在走下坡路。我認(rèn)為這歸結(jié)為所有權(quán)與治理、許可證、社區(qū)、架構(gòu)以及開源產(chǎn)品的勢能。
所有權(quán)和治理
MySQL 從未像 PostgreSQL 那樣是“社區(qū)驅(qū)動”的。然而,當(dāng) MySQL 由瑞典小公司 MySQL AB 擁有,且由終身仁慈獨裁者(BDFL)Michael “Monty” Widenius掌舵時,它獲得了大量的社區(qū)信任,更重要的是,大公司并沒有將其視為特別的威脅。
現(xiàn)在情況不同了——Oracle 擁有 MySQL,業(yè)界的許多大公司,特別是云廠商,將 Oracle 視為競爭對手。顯然它們沒有理由去貢獻(xiàn)代碼與營銷,為你的競爭對手創(chuàng)造價值。此外,擁有 MySQL 商標(biāo)的 Oracle 在 MySQL 上總是會有額外的優(yōu)先權(quán)。
相比之下,PostgreSQL 由社區(qū)運營,領(lǐng)域內(nèi)的每個商業(yè)供應(yīng)商都站在同一起跑線上—— 像 EDB 這樣的大公司與PostgreSQL 生態(tài)系統(tǒng)中的小公司相比,沒有特殊的優(yōu)待。
這意味著大公司更愿意貢獻(xiàn)并推薦 PostgreSQL 作為首選,因為這不會為他們的競爭對手創(chuàng)造價值,而且他們對PostgreSQL 項目的方向有更大的影響力。數(shù)百家小公司通過本地“草根”社區(qū)的開發(fā)和營銷努力,使 PostgreSQL 在全球無處不在。
MySQL社區(qū)能做些什么來解決這個問題?MySQL 社區(qū)能做的很少——這完全掌握在 Oracle 手中。正如我在《Oracle能拯救MySQL嗎?》中所寫,將 MySQL 移交給一個中立的基金會(如 Linux 或 Kubernetes 項目)將提供與 PostgreSQL 競爭的機會。不過,我并不抱太大希望,因為我認(rèn)為Oracle此刻更感興趣的是“硬性”變現(xiàn),而不是擴大采用率。
許可證
MySQL 采用雙許可證模式:GPLv2 和 Oracle 的商業(yè)許可證,而PostgreSQL則采用非常寬松的 PostgreSQL 許可證。
這實際上意味著您可以輕松創(chuàng)建使用商業(yè)許可的PostgreSQL衍生版本[5],或?qū)⑵淝度氲缴虡I(yè)許可的項目中,而無需任何“變通方法”。構(gòu)建此類產(chǎn)品的人們當(dāng)然是在支持和推廣 PostgreSQL。
MySQL 確實允許云供應(yīng)商創(chuàng)建自己的商業(yè)分支,具有MySQL兼容性的 Amazon Aurora 是最知名和最成功的此類分支,但在軟件發(fā)行時這樣做是不允許的。
MySQL社區(qū)能做什么?還是那句話,能做的不多——唯一能在寬松許可證下重新授權(quán)MySQL的公司是Oracle,而我沒有理由相信他們會想要放松控制,盡管“開放核心”和“僅限云”的版本通常與寬松許可的“核心”軟件配合良好。
社區(qū)
我認(rèn)為,當(dāng)我們考慮開源社區(qū)時,最好考慮三種不同的社區(qū)[6],而不僅僅是一個。
首先,用戶社區(qū)。MySQL在這方面仍然表現(xiàn)不錯,盡管 PostgreSQL 正日益成為新應(yīng)用的首選數(shù)據(jù)庫。然而,用戶社區(qū)往往是其他幾個社區(qū)工作的成果。
其次,貢獻(xiàn)者社區(qū)。PostgreSQL 有著更強大的貢獻(xiàn)者社區(qū),這并不奇怪,因為它是由眾多組織而非單一組織驅(qū)動的。我們舉辦了針對貢獻(xiàn)者的活動,還編寫了關(guān)于如何為 PostgreSQL 作出貢獻(xiàn)的書籍。PostgreSQL 的可擴展架構(gòu)也有助于輕松擴展 PostgreSQL,并公開分享工作成果。
最后,供應(yīng)商社區(qū)。我認(rèn)為這正是主要問題所在,沒有那么多公司有興趣推廣 MySQL,因為這樣做可能只是為Oracle 創(chuàng)造價值。你可能會問,這難道不會鼓勵所有 Oracle 的“合作伙伴”去推廣 MySQL 嗎?可能會,在全球范圍內(nèi)也確實有一些合作伙伴支持的MySQL活動,但這些與供應(yīng)商對 PostgreSQL 的支持相比,簡直微不足道,因為這是 “屬于他們的項目”。
MySQL社區(qū)能做什么?這里社區(qū)還是可以發(fā)揮一點作用的—— 盡管當(dāng)前的狀況使得工作更困難,回報更少,但我們?nèi)匀豢梢宰龊芏嗍虑椤H绻汴P(guān)心 MySQL 的未來,我鼓勵你組織與參與各種活動,尤其是在狹窄的 MySQL生態(tài)之外,去撰寫文章、錄制視頻、出版書籍。在社交媒體上推廣它們,并將它們提交到 Hacker News。
特別是,不要錯過FOSDEM 2025 MySQL Devroom[7]的征稿!
這也是 Oracle 可以參與的部分,他們可以在不減少盈利的情況下參與這些活動,并與潛在的貢獻(xiàn)者互動 —— 舉辦一些外部貢獻(xiàn)者可以參與的活動,與他們分享計劃,支持他們的貢獻(xiàn) —— 至少在他們與你的“MySQL社區(qū)”藍(lán)圖一致的情況下。
架構(gòu)
一些 PostgreSQL 同行認(rèn)為,PostgreSQL 發(fā)展勢頭更好的原因源于更好的架構(gòu)和更干凈的代碼庫。我認(rèn)為這可能是一個因素,但并非主要原因,這里的原因值得討論。
PostgreSQL 的設(shè)計高度可擴展,而且已經(jīng)實現(xiàn)有大量強大的擴展插件,而 MySQL 的擴展可能性則非常有限。一個顯著例外是存儲引擎接口 —— MySQL支持多種不同的存儲引擎,而 PostgreSQL 只有一個(盡管像Neon[8]或OrioleDB[9]這樣的PG分叉可以通過打補丁來改變這一點)。
這種可擴展性使得在 PostgreSQL 上進行創(chuàng)新更加容易,(特別是PG還有著一個更強大的貢獻(xiàn)者社區(qū)支持),而無需將新功能納入核心代碼庫中。
MySQL社區(qū)能做些什么?我認(rèn)為即使 MySQL 的可擴展性很有限,我們?nèi)匀豢梢酝ㄟ^MySQL已經(jīng)支持的各種類型的插件[10]和“組件”[11]來實現(xiàn)很多功能。
我們首先需要為MySQL建立一個“社區(qū)插件市場”,這將鼓勵開發(fā)者構(gòu)建更多插件并讓它們得到更多曝光。我們還需要Oracle的支持—— 承諾擴展MySQL的插件架構(gòu),賦能開發(fā)者構(gòu)建插件 —— 即使這會與Oracle的產(chǎn)品產(chǎn)生一些競爭。例如,如果 MySQL 有插件可以創(chuàng)建自定義數(shù)據(jù)類型和可插拔索引,或許我們已經(jīng)會看到 MySQL 的 PGVector替代品了。
開源產(chǎn)品的勢頭
選擇數(shù)據(jù)庫是一個長期的賭注,因為更換數(shù)據(jù)庫并不容易。去問問那些幾十年前選擇了 Oracle 而現(xiàn)在被其束縛的人吧。這意味著在選擇數(shù)據(jù)庫時,你需要考慮未來,不僅要考慮這些數(shù)據(jù)庫在十年后是否依然存在,而且要考慮隨著時間的發(fā)展,它是否還能滿足未來的技術(shù)需求。
正如我在文章《Oracle最終還是殺死了MySQL!》中所寫到的,我認(rèn)為Oracle已經(jīng)將大量開發(fā)重心轉(zhuǎn)移到專有商業(yè)版和云專屬的 MySQL 版本上 —— 幾乎放棄了 MySQL 社區(qū)版。雖然今日的 MySQL 仍然在許多應(yīng)用中表現(xiàn)出色,但它確實正在落后中,MySQL 社區(qū)中的許多人都在質(zhì)疑它是還有未來。
MySQL社區(qū)能做什么?還是那句話,決定權(quán)在 Oracle 手中,因為他們是唯一能決定 MySQL 官方路線的人。你可能會問,那么我們的Percona Server for MySQL[12]呢?我相信在Percona,我們確實提供了一個領(lǐng)先的 Oracle MySQL的開源替代品,但因為我們專注于完整的 MySQL 兼容性,所以必須謹(jǐn)慎對待對 MySQL 所做的變更,以避免破壞這種兼容性或使上游合并成本過高。MariaDB[13]做出了不同的利弊權(quán)衡;不受限制的創(chuàng)新使其與MySQL 的兼容性越來越差,而且每個新版本都離 MySQL 越來越遠(yuǎn)。
MariaDB
既然提到了MariaDB,你可能會問,MariaDB 不是已經(jīng)盡可能地解決了所有這些問題嗎?—— 畢竟 MariaDB 不是由 MariaDB基金會等機構(gòu)管理的嗎?別急,我認(rèn)為MariaDB是一個有缺陷的基金會[14],它并不擁有所有的知識產(chǎn)權(quán),尤其是商標(biāo),無法為所有供應(yīng)商提供公平的競爭環(huán)境。它仍然存在商標(biāo)壟斷問題,因為只有一家公司可以提供所有 “MariaDB” 相關(guān)的服務(wù),地位高于其他所有公司。
然而,MariaDB 可能有一個機會窗口;隨著 MariaDB(公司)剛剛被K1收購[15],MariaDB的治理和商標(biāo)所有權(quán)有機會向 PostgreSQL 的模式靠近。不過,我并不抱太大希望,因為放松對商標(biāo)知識產(chǎn)權(quán)的控制并不是私募股權(quán)公司所慣常做的。
當(dāng)然,MariaDB 基金會也可以選擇通過將項目更名為 SomethingElseDB 來獲得對商標(biāo)的完全控制,但這意味著MariaDB 將失去所有的品牌知名度;這也不太可能發(fā)生。
MariaDB 也已經(jīng)與 MySQL 有了顯著的分歧,調(diào)和這些差異將需要多年的努力,但我認(rèn)為如果有足夠的資源和社區(qū)意愿,這也許是一個可以解決的問題。
總結(jié)
正如你所看到的,由于 MySQL 的所有權(quán)和治理方式,MySQL 社區(qū)在其能做的事情上受到限制。從長遠(yuǎn)來看,我認(rèn)為 MySQL 社區(qū)唯一能與 PostgreSQL 競爭的方法是所有重要的參與者聯(lián)合起來(就像Valkey項目[16]那樣),在不同的品牌下創(chuàng)建一個 MySQL 的替代品—— 這可以解決上述大部分問題。
老馮評論
PostgreSQL 正在高歌猛進,而 MySQL 卻日薄西山,作為 MySQL 生態(tài)主要抗旗者的 Percona 也不得不悲痛地承認(rèn)這一現(xiàn)實,連發(fā)了三篇《MySQL將何去何從》,《Oracle最終還是殺死了MySQL》,《Oracle還能挽救MySQL嗎》,公開表達(dá)了對 MySQL 的失望與沮喪;Percona CEO Peter Zaitsev 也直言不諱道:
有了 PostgreSQL,誰還需要 MySQL 呢?—— 但如果 MySQL 死了,PostgreSQL 就真的壟斷數(shù)據(jù)庫世界了,所以 MySQL 至少還可以作為 PostgreSQL 的磨刀石,讓 PG 進入全盛狀態(tài)。
有的數(shù)據(jù)庫正在吞噬數(shù)據(jù)庫世界,而有的數(shù)據(jù)庫正在黯然地凋零死去。但不管怎樣,我對堅守 MySQL 陣地的 Percona 與 PZ 致以敬意。
-
MySQL
+關(guān)注
關(guān)注
1文章
836瀏覽量
26948 -
postgresql
+關(guān)注
關(guān)注
0文章
24瀏覽量
261
原文標(biāo)題:MySQL還有機會趕上PostgreSQL嗎?
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
展望PostgreSQL 18的新特性

利用SSIS源、查找及目標(biāo)組件集成PostgreSQL數(shù)據(jù)至ETL流程

使用插件將Excel連接到MySQL/MariaDB

dbForge Studio for PostgreSQL:PostgreSQL數(shù)據(jù)庫多功能集成開發(fā)環(huán)境
MySQL數(shù)據(jù)庫的安裝

PostgreSQL將不再支持MD5密碼
MySQL編碼機制原理
適用于MySQL的dbForge架構(gòu)比較

Jtti:MySQL初始化操作如何設(shè)置root密碼
華納云:如何修改MySQL的默認(rèn)端口

MySQL的整體邏輯架構(gòu)

評論