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