來源 | OSCHINA 社區(qū)
作者 | 愛可生開源社區(qū)
在本文中,我們將探討 MySQL 和 MariaDB 服務生命周期和版本管理方式兩個方面目前的狀況及相關歷史背景。
需要說明的是 MySQL 和 MariaD B 都有社區(qū)版和企業(yè)版。對于 MySQL,這兩個版本都是由同一家公司(Oracle)提供,遵循相同的版本編號體系,企業(yè)版包含更豐富的功能。對于 MariaDB,社區(qū)版由 MariaDB 基金會提供,而企業(yè)版由 MariaDB PLC 提供,采用獨有的生命周期 與功能配置。為簡單起見,我們將重點關注社區(qū)版。
MariaDB
你可能了解到,MariaDB 起初是 MySQL 的一個分支。早期。兩者發(fā)展模式相似。但從 2014 年 MariaDB 10 版開始,情況大為不同。這一次,MariaDB 不再與 MySQL 版本匹配,從而拋棄了之前與 MySQL 5.1 和 MySQL 5.5 版本一致的模式。
獲得獨立的版本體系允許 MariaDB 以更快的節(jié)奏獨立創(chuàng)新,而不會因為與 MySQL 版本號相同而產(chǎn)生用戶誤導。例如,MariaDB 曾經(jīng)有 5.2 和 5.3 兩個版本,但 MySQL 沒有對應的版本號。
MariaDB 發(fā)展迅速。緊接著 2015 年發(fā)布了 MariaDB 10.1 版本,2017 年發(fā)布了 MariaDB 10.2 版本。此后,主版本每個 1-2 年發(fā)布一次,2021 年發(fā)布了 MariaDB 10.6 版。不過,每一個版本都提供 5 年的長期支持期限,這給工程團隊帶來了額外負擔。
為了解決這個問題,MariaDB 從 2021 年底開始實施 “創(chuàng)新版模型”。與 Ubuntu Linux 發(fā)布模式類似,每個季度發(fā)布一個短期支持版本(支持 1 年),同時還會選擇性發(fā)布 LTS 版本(至少 5 年)。短期支持版本和長期支持版本遵循相同的版本編號方式。
最近,MariaDB 也將主版本從 10 改為 11。產(chǎn)品經(jīng)理 Kaj Arno 解釋說,這主要是計劃對優(yōu)化器及其成本模型進行復雜修改所致。目前新 11 系列還沒有 LTS 版本,最新的 LTS 版本是 MariaDB 10.11,支持周期至 2028 年 2 月。
MySQL
起初,在 Oracle 的領導下,MySQL 繼續(xù)遵循原有的版本生發(fā)周期。每隔幾年,就會有大的功能版本,還會有 “僅修復錯誤” 的小版本。MySQL 5.5、MySQL 5.6 和 MySQL 5.7 就是這種情況。
這種發(fā)布周期的好處是穩(wěn)定!次要版本升級的風險相當?shù)停绻枰貪L,可以通過快速交換二進制文件來完成,而不需要對數(shù)據(jù)執(zhí)行任何操作。然而,與所有事情一樣,都需要權衡。這種方法的缺點是新功能的推出緩慢以及主要版本之間的巨大變化,使得升級可能變得混亂且耗時。
在 MySQL 8 中發(fā)生了巨大的變化。MySQL 8 看起來像是一個 “長期迭代版”。雖然最初的 GA 版本于 2018 年 4 月發(fā)布,但我們已經(jīng)五年沒有看到新的主要版本了!這并不意味著 MySQL 8 沒有創(chuàng)新;相反,現(xiàn)在的 MySQL 8 與 2018 年發(fā)布的版本有很大不同,因為在每個小版本中,都會引入新功能并修復錯誤。
如果您喜歡更快地獲得新功能,那一定會喜歡這種新的發(fā)布方法。從理論上講,這也意味著這些 “功能版本” 升級的風險較小,與過去主要版本需要數(shù)年的工作相比,這些升級只需要幾個月的開發(fā)工作。然而,實際情況并非如此,因為某些版本包含新功能,其中的錯誤足以導致版本召回。更糟糕的是,MySQL 8 一旦升級到新的版本,無法保證以前的版本能夠操作相同的數(shù)據(jù)。
MySQL 團隊也認識到 MySQL 8 發(fā)布方式的問題;因此,接下來將引入新的發(fā)布模型。該模型引入了 Innovation 版本,大約每季度發(fā)布一次,并且僅支持最新的創(chuàng)新版本(即,任何錯誤修復都將與新功能一起推出,并作為下一個創(chuàng)新版本推出,類似于 MySQL 8.0 現(xiàn)在的運行方式)。另一種版本是 LTS 版本,該版本每隔幾年發(fā)布一次,并由 Oracle 支持 8 年(5 年標準 + 3 年擴展)。
MySQL LTS 版本的運行方式與 MySQL 8 之前的 MySQL 運行方式類似。 創(chuàng)新版本有點類似于 MySQL 團隊在某些時候使用的 “里程碑版本”,但里程碑版本不被視為 “生產(chǎn)就緒”,而是用于開發(fā)和預覽版、創(chuàng)新版被視為 “生產(chǎn)級質(zhì)量”。
MySQL 8.0 在此版本模型中占有特殊的地位。目前,它基本上是一個創(chuàng)新風格版本,但隨著 MySQL 8.0.34 的發(fā)布,它將成為僅修復錯誤的 LTS 版本。
差異
有趣的是,兩個社區(qū)似乎都認識到我們 既需要高速創(chuàng)新又需要穩(wěn)定,但也不能在同一個發(fā)行系列中真正同時擁有這兩種方式。還需要控制支持和維護成本;因此,不能擁有太多積極支持的版本。
MariaDB 和 MySQL 都得出結論,他們需要同時注重創(chuàng)新速度的 LTS 版本和版本。
MySQL 和 MariaDB 的 LTS 發(fā)布節(jié)奏也可能相似。MySQL 的 LTS 版本大約每兩年發(fā)布一次,這與 MariaDB 類似,“至少每隔一年” 發(fā)布一次。不同之處在于,MariaDB 還與主要 Linux 發(fā)行版合作,使 MariaDB LTS 版本與 Linux 發(fā)行版 LTS 發(fā)行計劃保持一致,而 MySQL 沒有聲明任何此類目標。
存在差異的地方在于非 LTS 版本的處理方式。
當在有限時間內(nèi)發(fā)布 “僅修復錯誤” 的版本時,MariaDB 會選擇 “短期支持” 路線,而 MySQL 選擇支持滾動創(chuàng)新版本的路徑,其中錯誤修復僅包含在最新的創(chuàng)新版本中。看看這些選擇如何發(fā)揮作用將會很有趣:
MariaDB 的方法更加 “用戶友好”,因為它使用戶可以更好地控制何時升級到下一個功能版本。
MySQL 的方法減少了支持版本所需的工作。
另一個重要的區(qū)別是支持什么類型的升級。
MySQL 僅支持升級到下一個主要版本(即,您不能直接從 MySQL 5.6 升級到 MySQL 8)。
MariaDB 支持在升級中跳過主要版本。
審核編輯:湯梓紅
-
Linux
+關注
關注
87文章
11294瀏覽量
209344 -
開源
+關注
關注
3文章
3320瀏覽量
42473 -
MySQL
+關注
關注
1文章
804瀏覽量
26532
原文標題:MySQL和MariaDB版本管理的歷史背景及差異
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論