精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MySQL還能跟上PostgreSQL的步伐嗎

OSC開源社區 ? 來源:OSC開源社區 ? 2024-11-18 10:16 ? 次閱讀

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 生態能做些什么扭轉這一趨勢嗎?讓我們來深入探討一下!

2e66b608-9cbf-11ef-a511-92fbcf53809c.png

讓我們看看為什么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

    文章

    801

    瀏覽量

    26441
  • postgresql
    +關注

    關注

    0

    文章

    20

    瀏覽量

    209

原文標題:MySQL還有機會趕上PostgreSQL嗎?

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    詳解MySQL多實例部署

    詳解MySQL多實例部署
    的頭像 發表于 11-11 11:10 ?167次閱讀

    MySQL編碼機制原理

    前言 一位讀者在本地部署 MySQL 測試環境時碰到一個問題,我覺得挺有代表性的,所以寫篇文章介紹一下,看完相信你會對 MySQL 的編碼機制有最本質的了解,本文的目錄結構如下 讀者問題簡介
    的頭像 發表于 11-09 11:01 ?162次閱讀

    適用于MySQL的dbForge架構比較

    dbForge Schema Compare for MySQL 是一種工具,用于輕松有效地比較和部署 MySQL 數據庫結構和腳本文件夾差異。該工具提供了 MySQL 數據庫架構中所有差異的全面視圖。
    的頭像 發表于 10-28 09:41 ?143次閱讀
    適用于<b class='flag-5'>MySQL</b>的dbForge架構比較

    MySQL知識點匯總

    大家好,這部分被稱為DQL部分,是每個學習MySQL必須要學會的部分,下面就讓我來介紹MySQL中的其他部分。
    的頭像 發表于 08-05 15:27 ?366次閱讀
    <b class='flag-5'>MySQL</b>知識點匯總

    MySQL的整體邏輯架構

    支持多種存儲引擎是眾所周知的MySQL特性,也是MySQL架構的關鍵優勢之一。如果能夠理解MySQL Server與存儲引擎之間是怎樣通過API交互的,將大大有利于理解MySQL的核心
    的頭像 發表于 04-30 11:14 ?424次閱讀
    <b class='flag-5'>MySQL</b>的整體邏輯架構

    MySQL忘記root密碼解決方案

    mysql登錄密碼為password()算法加密,解密成本太高,以下為通用方案; 原理:mysql提供了特殊啟動方式,即跳過權限表驗證,啟動后,登錄不需要提供密碼; 登錄后,即可修改mysql數據庫的user表,重置
    的頭像 發表于 04-23 16:08 ?652次閱讀

    MySQL密碼忘記了怎么辦?MySQL密碼快速重置方法步驟命令示例!

    MySQL密碼忘記了怎么辦?MySQL密碼快速重置方法步驟命令示例! MySQL是一種常用的關系型數據庫管理系統,如果你忘記了MySQL的密碼,不必擔心,可以通過一些簡單的步驟來快速重
    的頭像 發表于 01-12 16:06 ?723次閱讀

    如何使用Golang連接MySQL

    首先我們來看如何使用Golang連接MySQL。
    的頭像 發表于 01-08 09:42 ?3246次閱讀
    如何使用Golang連接<b class='flag-5'>MySQL</b>

    mysql密碼忘了怎么重置

    mysql密碼忘了怎么重置? MySQL是一種開源的關系型數據庫管理系統,密碼用于保護數據庫的安全性和保密性。如果你忘記了MySQL的密碼,可以通過以下幾種方法進行重置。 方法一:使用MySQ
    的頭像 發表于 12-27 16:51 ?6334次閱讀

    eclipse怎么連接數據庫mysql

    連接Eclipse和MySQL數據庫可以通過JDBC(Java Database Connectivity)來實現。以下是詳細步驟: 下載并安裝MySQL數據庫:你首先需要下載并安裝MySQL數據庫
    的頭像 發表于 12-06 11:06 ?1218次閱讀

    mysql配置失敗怎么辦

    MySQL是一款廣泛使用的關系型數據庫管理系統,但在配置過程中可能會出現各種問題,導致配置失敗。本文將詳細介紹MySQL配置失敗的常見原因和對應的解決方案,以幫助讀者快速排查和解決問題。 一、檢查
    的頭像 發表于 12-06 11:03 ?3377次閱讀

    mysql數據庫基礎命令

    MySQL是一個流行的關系型數據庫管理系統,經常用于存儲、管理和操作數據。在本文中,我們將詳細介紹MySQL的基礎命令,并提供與每個命令相關的詳細解釋。 登錄MySQL 要登錄MySQL
    的頭像 發表于 12-06 10:56 ?552次閱讀

    oracle和mysql語法區別大嗎

    Oracle和MySQL是兩種不同的關系型數據庫管理系統(RDBMS)。雖然它們都是遵循SQL標準,但在語法和特性上仍存在一些區別。以下是對Oracle和MySQL語法區別的詳細說明: 數據類型
    的頭像 發表于 12-06 10:26 ?1116次閱讀

    如何在Delphi中使用Devart PgDAC連接PostgreSQL

    PostgreSQL是一種流行的開源關系數據庫管理系統(RDBMS),廣泛用于構建健壯且可擴展的應用程序。
    的頭像 發表于 12-06 09:04 ?1014次閱讀

    php的mysql無法啟動

    MySQL是一種常用的關系型數據庫管理系統,而PHP是一種廣泛應用于服務器端的腳本語言。在使用PHP開發網站或應用時,經常會碰到MySQL無法啟動的問題。本文將詳細介紹解決MySQL無法啟動的方法
    的頭像 發表于 12-04 15:59 ?1441次閱讀