整理丨諾亞
出品 | 51CTO技術(shù)棧(微信號:blog51cto)
數(shù)據(jù)庫賽道向來競爭激烈。在開源數(shù)據(jù)庫領(lǐng)域,PostgreSQL和MySQL是主要的競爭者,兩者有各自獨(dú)特的用戶群和生態(tài)系統(tǒng)。但近幾年,兩者的較量卻開始分出伯仲。
根據(jù)2023年的Stack Overflow開發(fā)者調(diào)查,PostgreSQL已經(jīng)成為開發(fā)者中最受歡迎的數(shù)據(jù)庫,MySQL則以41.09%的占比屈居第二。無可辯駁的是,PostgreSQL持續(xù)展現(xiàn)出強(qiáng)勁的增長勢頭,相較來說,MySQL雖然長期保持著極高的受歡迎度,但在某些時期的表現(xiàn)卻起伏不定。
對于MySQL的逐漸弱勢,有人將矛頭對準(zhǔn)了其維護(hù)者——Oracle公司。
圖源:Stack Overflow
1.對專有功能的偏好限制了MySQL的采用
從發(fā)展史來說,MySQL誕生于上個世紀(jì)90年代中期,它最早由MySQL AB公司開發(fā),后來在2008年被Sun Microsystems收購,最終在2010年隨著Sun被Oracle公司收購而歸入Oracle麾下。
但是隨后Oracle公司作為MySQL的維護(hù)者,其對MySQL的策略和管理方式遭到了一些資深工程師的質(zhì)疑。
早前就有觀點(diǎn)指出MySQL在某些性能優(yōu)化和新功能引入方面可能不如PostgreSQL活躍,尤其是在Oracle似乎更專注于其專有系統(tǒng)的功能增強(qiáng),比如MySQL Heatwave。
最近,一位履歷豐富的MySQL數(shù)據(jù)庫工程師的直接發(fā)聲再次佐證了這一觀點(diǎn)——Oracle公司通過傾向于為其專有系統(tǒng)增加功能,可能無意中正在扼殺這個廣受歡迎的開源數(shù)據(jù)庫。
發(fā)聲的工程師名叫Peter Zaitsev,曾在MySQL Inc.擔(dān)任性能工程師,后來又成為了Percona的創(chuàng)始人。這位來自俄羅斯的軟件工程師曾參與編寫關(guān)于高性能MySQL的書籍,并曾為Oracle對開源數(shù)據(jù)庫的管理進(jìn)行過辯護(hù)。
但在最新的博文中,Zaitsev表示Oracle在過去幾年中推廣其分析系統(tǒng)Heatwave的做法令人生疑。他公開表示Oracle可能無意中限制了MySQL的發(fā)展,這不僅關(guān)系到技術(shù)的進(jìn)步,更觸及了開源精神與商業(yè)利益的平衡問題。
2.“建議將MySQL轉(zhuǎn)移到Linux基金會”
Zaitsev于2006年創(chuàng)立了開源數(shù)據(jù)庫咨詢公司Percona。他在公司網(wǎng)站上發(fā)布的博文中表示,Oracle的MySQL企業(yè)版專注于“企業(yè)需要而開發(fā)者不太關(guān)心”的特性,因為Oracle的MySQL Heatwave分析數(shù)據(jù)庫服務(wù)的發(fā)展更為令人擔(dān)憂。
“Heatwave包含了許多在MySQL社區(qū)版或MySQL企業(yè)版中不可用的功能,如分析查詢加速或機(jī)器學(xué)習(xí)功能。”
他指出,開源MySQL甚至沒有并行查詢執(zhí)行功能。“當(dāng)市場上出現(xiàn)具有數(shù)百個核心的CPU時,這些核心并沒有顯著變快,這越來越限制了性能,”他說道。
向量搜索是另一個在Heatwave中可用但在MySQL中不可用的功能,盡管它在開源PostgreSQL中可用。
“當(dāng)所有其他主要的開源數(shù)據(jù)庫都增加了對向量搜索功能的支持,而MariaDB也在努力實現(xiàn)這一功能時,MySQL生態(tài)系統(tǒng)中僅將此作為云專屬的MySQL Heatwave功能,至少可以說是不幸的。”最后,他還補(bǔ)充說JavaScript支持作為MySQL企業(yè)版獨(dú)有的功能發(fā)布。
“所有這些都打破了上述提到的黃金法則,因為它們確實限制了MySQL的采用,無論是從缺失這些特性的角度看,還是從擔(dān)心這種趨向可能對MySQL未來發(fā)展產(chǎn)生的影響來考慮。”
“如果這還不夠,MySQL似乎在性能工程部門遭受了多年的忽視,與MySQL 5.6相比,即使是在簡單的單線程工作負(fù)載下,性能也顯著降低。你可以說功能是以性能為代價的,但MariaDB已經(jīng)能夠顯著減少性能退化,而PostgreSQL在添加新功能的同時甚至提高了性能。”Zaitsev補(bǔ)充道。
在LinkedIn上就該話題進(jìn)行的討論中,Zaitsev堅持認(rèn)為,如果Oracle認(rèn)為維護(hù)MySQL應(yīng)該成為共同的責(zé)任,“因為他們不再從承擔(dān)大部分項目維護(hù)負(fù)擔(dān)中獲得價值”,他們完全可以“將其轉(zhuǎn)移到Linux基金會(或其他獨(dú)立的非營利實體),并專注于維護(hù)他們的內(nèi)部版本(類似于AWS Aurora)”。他補(bǔ)充說:“在這種情況下,可以合理期待AWS、GCP等來分擔(dān)推動開源項目前進(jìn)的重任……我相信他們會愿意這樣做的。”
3.拯救MySQL需要正視開發(fā)者需求
當(dāng)然,并非所有參與討論的圈內(nèi)人士都同意Oracle的舉動會扼殺開源MySQL。
有人評論:“我對此并不確定。Oracle目前似乎更聚焦于MySQL作為服務(wù)的提供。要判斷他們的動作是否會影響(MySQL的未來),我得先審視他們對MySQL服務(wù)器本身的改進(jìn)情況。我個人真心希望不會發(fā)生那樣的情況,因為這將讓我深感遺憾。最近,我正致力于優(yōu)化PgPool配置,以確保其高效且可擴(kuò)展性良好,但從功能豐富度來說,與ProxySQL和MySQL Router相比較,PgPool的確顯得有些不足。”
Zaitsev回復(fù)說:“對數(shù)據(jù)庫即服務(wù)的關(guān)注意味著開源MySQL被忽視并落后,這意味著正在扼殺它......”
首席技術(shù)官M(fèi)ark Callaghan同樣表達(dá)了認(rèn)同,但語氣中透露出遺憾:“我不得不贊同這一觀點(diǎn),盡管這讓我感到心痛。我們所依賴的那個積極擴(kuò)展MySQL、深入探索其技術(shù)邊界、踴躍提交問題報告、主動修補(bǔ)漏洞,并不時為MySQL帶來改進(jìn)的外部貢獻(xiàn)者群體,正日漸萎縮。”
而相較MySQL,老對手PostgreSQL在DB-Engines排名系統(tǒng)中正逐步縮小與MySQL的差距,并在某些關(guān)鍵指標(biāo)上實現(xiàn)了超越,顯示出了強(qiáng)勁的增長動力和開發(fā)者社區(qū)的支持。
特別是在2023年,PostgreSQL榮獲了DB-Engines的年度數(shù)據(jù)庫獎項。進(jìn)入2024年,PostgreSQL的排名趨勢依舊樂觀,從2024年4月的報告來看,它的分?jǐn)?shù)相比去年同月大幅增加了,顯示了其持續(xù)上漲的態(tài)勢,并有望再次成為年度DBMS冠軍。而MySQL的前景則黯淡許多。
Zaitsev指出,如果Oracle不能夠重視現(xiàn)代開發(fā)者對關(guān)系型數(shù)據(jù)庫的當(dāng)前需求,那么MySQL可能會遭遇消亡,無論這種結(jié)果是出于Oracle的直接行動,還是僅僅因為未能采取必要的措施來維持其活力。
參考鏈接:https://www.theregister.com/2024/06/11/early_mysql_engineer_questions_whether