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

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

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

dbForge Studio for PostgreSQL:PostgreSQL數(shù)據(jù)庫多功能集成開發(fā)環(huán)境
適用于MySQL和MariaDB的.NET連接器

MySQL數(shù)據(jù)庫的安裝

PostgreSQL將不再支持MD5密碼
香港云服務(wù)器怎么部署MySQL數(shù)據(jù)庫?
MySQL編碼機(jī)制原理
適用于MySQL的dbForge架構(gòu)比較

Jtti:MySQL初始化操作如何設(shè)置root密碼
MySQL知識(shí)點(diǎn)匯總

華納云:如何修改MySQL的默認(rèn)端口

評(píng)論