前段時間,筆者與一位資深開發(fā)者聊天,得知他作為后端工程師,輾轉(zhuǎn)于多個軟件服務(wù)公司,所服務(wù)的客戶涵蓋零售、交通、金融、互聯(lián)網(wǎng)等行業(yè)。我問他接觸最多的數(shù)據(jù)庫是什么?他脫口而出:“MySQL!”
MySQL可能是很多數(shù)據(jù)庫從業(yè)者的啟蒙數(shù)據(jù)庫。DB-Engines官網(wǎng)6月最新數(shù)據(jù)顯示,MySQL是全球最受歡迎的開源數(shù)據(jù)庫。在所有數(shù)據(jù)庫排名中,MySQL僅次于Oracle,穩(wěn)居全球數(shù)據(jù)庫亞軍之位。
(圖片源自DB-Engines官網(wǎng))
近年來,開源數(shù)據(jù)庫成為數(shù)據(jù)庫發(fā)展的一大趨勢,備受關(guān)注。今天,我們就來扒一扒開源數(shù)據(jù)庫“課代表”MySQL的前世今生。
數(shù)據(jù)庫“老炮兒”MySQL發(fā)家史
(一)數(shù)據(jù)庫“老炮兒”MySQL
MySQL的歷史最早可以追溯到1979年,距今已有43年歷史。
1996年10月,MySQL的首個穩(wěn)定版本 3.11.1發(fā)布。此時正值互聯(lián)網(wǎng)發(fā)展初期,一切充滿著希望。1999年,瑞典MySQL AB公司成立。
進(jìn)入新世紀(jì),MySQL邁出了重要一步。2000年,MySQL采用GPL(General Public License)許可協(xié)議開源。2005年10月,發(fā)布了MySQL 5.0,在5.0中加入了游標(biāo)、存儲過程、觸發(fā)器、視圖和事務(wù)支持等功能模塊。至此,MySQL正式進(jìn)入高性能數(shù)據(jù)庫行列。
2006年,Oracle收購InnoDB引擎,這深刻影響了后來MySQL的發(fā)展——因為MySQL被賣身兩次后歸于Oracle麾下。2008年,瑞典MySQL AB公司被Sun收購。次年,Sun被Oracle收購,MySQL數(shù)據(jù)庫被一并納入Oracle,進(jìn)入Oracle MySQL時代。2010年發(fā)布的MySQL5.5版本中,將其默認(rèn)的存儲引擎由MyISAM更換為InnoDB。
進(jìn)入移動互聯(lián)網(wǎng)時代后,MySQL發(fā)布了穩(wěn)定的經(jīng)典版本:2013年發(fā)布MySQL 5.6;2015年發(fā)布MySQL 5.7;2018年4月,MySQL 8.0正式發(fā)行(GA);MySQL的最新版本8.0.29于2022年4月26日正式發(fā)行(GA)。
(MySQL數(shù)據(jù)庫發(fā)展歷程圖)
(二)流行:數(shù)據(jù)庫領(lǐng)域的“萬人迷”
當(dāng)您瀏覽本文的時候,后臺很可能由MySQL數(shù)據(jù)庫在提供支撐。MySQL的應(yīng)用十分廣泛。新世紀(jì)初期,未來的互聯(lián)網(wǎng)巨頭剛剛萌芽,但是商業(yè)數(shù)據(jù)庫太過昂貴,對技術(shù)人員的能力要求也較高,開源數(shù)據(jù)庫成為大家的新選擇。
全球范圍內(nèi),美國雅虎公司率先大規(guī)模使用MySQL數(shù)據(jù)庫。在其影響下,海內(nèi)外互聯(lián)網(wǎng)公司開始自己的MySQL應(yīng)用之路,如Google、Facebook、阿里巴巴、百度、騰訊等公司以及90%以上的互聯(lián)網(wǎng)公司都會或多或少地應(yīng)用MySQL數(shù)據(jù)庫。
自此,以 MySQL 為代表的開源數(shù)據(jù)庫產(chǎn)品引領(lǐng)了數(shù)據(jù)庫技術(shù)發(fā)展方向,在解決客戶需求的同時,也培育了客戶使用習(xí)慣,從而贏得了大量客戶。
無論在海外還是中國,MySQL都是最流行的開源數(shù)據(jù)庫,擁有廣泛的受眾,是數(shù)據(jù)庫領(lǐng)域的“萬人迷”。從DB-Engines流行度趨勢圖可以看到,MySQL與Oracle幾乎不相上下。
(圖片來自DB-Engines官網(wǎng))
與此同時,MySQL也是全球最受歡迎的關(guān)系型數(shù)據(jù)庫之一。根據(jù)Slintel網(wǎng)站的統(tǒng)計數(shù)據(jù),在全球關(guān)系型數(shù)據(jù)庫市場中,MySQL市場份額最高,達(dá)到43.04%,Oracle僅為16.76%。
數(shù)據(jù)來源:Slintel網(wǎng)站
中國信息通信研究院《數(shù)據(jù)庫發(fā)展研究報告(2021年)》指出,我國金融行業(yè)各類數(shù)據(jù)庫應(yīng)用占比為Oracle 55%、DB2 19%、MySQL 13%、PostgreSQL 6%,其他7%。
圖片源自《數(shù)據(jù)庫發(fā)展研究報告(2021年)》
那么,MySQL是如何成為數(shù)據(jù)庫領(lǐng)域的“萬人迷”呢?
(三)借勢互聯(lián)網(wǎng),開源、免費成就全球最受歡迎的關(guān)系型數(shù)據(jù)庫
MySQL能成為全球最受歡迎的關(guān)系型數(shù)據(jù)庫,主要是搭上了互聯(lián)網(wǎng)爆發(fā)時代的快車。MySQL本身產(chǎn)品能力過硬,憑借開源、免費的優(yōu)勢,從Oracle、DB2等成熟的商業(yè)數(shù)據(jù)庫叢林中,硬是殺出了一條血路。
開源與互聯(lián)網(wǎng)相互促進(jìn),彼此成就。開源軟件可以看作是分布式協(xié)作的標(biāo)桿,即利用全人類的智慧群策群力。源代碼開放具備全球共享、免費等特點,使更多人參與到軟件開發(fā)中。而互聯(lián)網(wǎng)的發(fā)展則打破了時空的界限,將全球鏈接到一起,使全球分布式協(xié)作更高效便捷。MySQL數(shù)據(jù)庫憑借其性能穩(wěn)定、成本低、高可用、生態(tài)成熟等優(yōu)勢,俘獲了無數(shù)開源貢獻(xiàn)者的心,成為數(shù)據(jù)庫領(lǐng)域的“萬人迷”。
從MySQL的發(fā)展史不難看出,MySQL數(shù)據(jù)庫的核心動力源于開源貢獻(xiàn)者。即便2009年,MySQL創(chuàng)始人Monty Widenius離開Sun獨自進(jìn)行MySQL重要分支MariaDB的開發(fā),仍無法撼動MySQL全球第一開源數(shù)據(jù)庫的地位。但近年來,隨著MySQL兼容外部開源貢獻(xiàn)者的態(tài)度日趨保守,MySQL原有擁躉轉(zhuǎn)投MariaDB、Percona Server,導(dǎo)致MySQL占有率逐漸下降也是不爭的事實。
MySQL與中國的故事
(一)曾經(jīng)的MySQL中國研發(fā)中心和MySQL中國教育中心
中國最早的一批MySQL數(shù)據(jù)庫從業(yè)者一定會記得MySQL中國研發(fā)中心和MySQL中國教育中心。早在2006年,中國企業(yè)北京萬里開源軟件有限公司(簡稱“萬里數(shù)據(jù)庫”)就與瑞典MySQL AB公司成立了MySQL中國研發(fā)中心和MySQL中國教育中心,共同推動MySQL在中國的發(fā)展。萬里數(shù)據(jù)庫與MySQL的合作直至2009年底終止。此后,MySQL的服務(wù)授權(quán)由Oracle授予,國內(nèi)也有不少企業(yè)獲得了MySQL的技術(shù)服務(wù)授權(quán),其中較為典型的廠商如愛可生。
MySQL中國研發(fā)中心揭牌成立
(二)國產(chǎn)數(shù)據(jù)庫中MySQL技術(shù)路線占比高
國內(nèi)最早的一批互聯(lián)網(wǎng)先行者是推動MySQL在中國發(fā)展的重要力量。
以互聯(lián)網(wǎng)巨頭阿里巴巴為例,當(dāng)年基于成本與安全的考慮,提出“去IOE”的口號。其中去“O”就是以MySQL替代Oracle?;贛ySQL發(fā)展出的AliSQL獨立分支,在阿里去“O”工程中發(fā)揮了重要作用。而基于對MySQL改造的實踐,阿里巴巴影響和帶動了國內(nèi)互聯(lián)網(wǎng)公司應(yīng)用MySQL的熱潮。
MySQL 是目前世界上最流行的開源數(shù)據(jù)庫軟件,市場占有率巨大,這是不可否認(rèn)的事實。我們再從數(shù)據(jù)庫產(chǎn)品本身、用戶使用等方面看看國內(nèi)MySQL的發(fā)展情況。
當(dāng)前是國產(chǎn)數(shù)據(jù)庫發(fā)展的黃金時期,百花齊放,異彩紛呈。我國關(guān)系型數(shù)據(jù)庫產(chǎn)品多數(shù)基于 MySQL 二次開發(fā)而來。根據(jù)中國信息通信研究院《數(shù)據(jù)庫發(fā)展研究報告(2021年)》,截止到2021年6月,關(guān)系型數(shù)據(jù)庫中有23個是基于開源數(shù)據(jù)庫 MySQL 進(jìn)行二次開發(fā)的,占關(guān)系型數(shù)據(jù)庫的比例為 28.40%。
國內(nèi)各行各業(yè)的終端用戶也大量使用了 MySQL 數(shù)據(jù)庫。以金融行業(yè)為例,據(jù)調(diào)研,90%的金融機(jī)構(gòu)已廣泛應(yīng)用或試用開源軟件。開源數(shù)據(jù)庫方面,超9成金融機(jī)構(gòu)應(yīng)用了MySQL數(shù)據(jù)庫。目前,MySQL數(shù)據(jù)庫已在金融行業(yè)得到了規(guī)模化應(yīng)用。工商銀行、建設(shè)銀行、招商銀行、民生銀行、中國銀聯(lián)、泰康保險6家金融企業(yè)的MySQL數(shù)據(jù)庫投產(chǎn)節(jié)點規(guī)模超過1000個。其中,中國銀聯(lián)、工商銀行、招商銀行甚至超過4000個節(jié)點。
與之相對應(yīng)的是國內(nèi)圍繞MySQL生態(tài)的長期投入,如基礎(chǔ)軟硬件設(shè)施、適配 MySQL 的應(yīng)用軟件開發(fā)、MySQL 生態(tài)的人才培養(yǎng)等。在此基礎(chǔ)上,國內(nèi)已形成了龐大的圍繞 MySQL 的軟件生態(tài)和人才生態(tài),大量的終端用戶把 MySQL 作為首選數(shù)據(jù)庫軟件進(jìn)行使用。
雖然MySQL的開源協(xié)議會造成業(yè)內(nèi)的一些擔(dān)憂,但正確的做法不是放棄,而是規(guī)范應(yīng)用和技術(shù)掌控,而且以MySQL為代表的開源數(shù)據(jù)庫也迎來了政策東風(fēng)。
(三)國家政策大力扶持開源項目,為國內(nèi)廠商保駕護(hù)航
中國信息通信研究院《開源生態(tài)白皮書2021》指出,我國已成為全球開源生態(tài)的重要貢獻(xiàn)力量,參與國際開源社區(qū)協(xié)作的開發(fā)者數(shù)量排名全球第二。國內(nèi)開源技術(shù)空前發(fā)展的同時,具有引領(lǐng)性、保障性的政策出臺也帶來了利好。
2021年,開源被首次寫入《中華人民共和國國民經(jīng)濟(jì)和社會發(fā)展第十四個五年規(guī)劃和2035年遠(yuǎn)景目標(biāo)綱要》,明確提出支持?jǐn)?shù)字技術(shù)開源社區(qū)等創(chuàng)新聯(lián)合體發(fā)展;同年10月,央行、網(wǎng)信辦、工信部、銀保監(jiān)會、證監(jiān)會聯(lián)合發(fā)布《關(guān)于規(guī)范金融業(yè)開源技術(shù)應(yīng)用與發(fā)展的意見》,為開源在金融業(yè)的應(yīng)用提供政策指引;工信部也印發(fā)《“十四五”軟件和信息技術(shù)服務(wù)業(yè)發(fā)展規(guī)劃》,系統(tǒng)布局“十四五”開源生態(tài)發(fā)展;2022年,國務(wù)院又印發(fā)《“十四五”數(shù)字經(jīng)濟(jì)發(fā)展規(guī)劃》,提出支持具有自主核心技術(shù)的開源社區(qū)、開源平臺、開源項目發(fā)展等規(guī)劃。
相信這些綱領(lǐng)性的政策及后續(xù)的實施指南將對我國開源技術(shù)的良性發(fā)展起到保駕護(hù)航的作用。隨著國家對開源技術(shù)的重視,開源項目及開源協(xié)議的合規(guī)性也必將作為重點規(guī)范內(nèi)容,以保障我國企業(yè)對開源技術(shù)的應(yīng)用。
(四)國內(nèi)MySQL技術(shù)路線發(fā)展的未來
近年來,國內(nèi)基于MySQL技術(shù)路線或兼容MySQL的社區(qū)逐漸興起。相比國外MySQL開源社區(qū),國內(nèi)MySQL技術(shù)相關(guān)的社區(qū)主要由國內(nèi)廠商、技術(shù)人員參與并進(jìn)行代碼貢獻(xiàn),相對更自主、安全、可控。目前,國內(nèi)開源數(shù)據(jù)庫社區(qū)中,明確提出基于MySQL路線的開源社區(qū)并不多,大多是兼容MySQL的開源數(shù)據(jù)庫社區(qū),如:TiDB社區(qū)、OceanBase社區(qū)。
GreatSQL社區(qū)是國內(nèi)為數(shù)不多的、明確基于MySQL路線且較為活躍的開源數(shù)據(jù)庫社區(qū)。該社區(qū)成立于2021年,由萬里數(shù)據(jù)庫發(fā)起。從官方資料可以看到GreatSQL分支與MySQL官方的差異及優(yōu)勢特性。GreatSQL開源數(shù)據(jù)庫是適用于金融級應(yīng)用的國內(nèi)自主MySQL版本,專注于提升MGR可靠性及性能,支持InnoDB并行查詢等特性,可以作為MySQL或Percona Server的可選替換,用于線上生產(chǎn)環(huán)境,且完全免費并兼容MySQL或Percona Server。據(jù)了解,GreatSQL社區(qū)已覆蓋1500+技術(shù)開發(fā)者,被Gitee評為“最有價值開源項目”。
除MySQL數(shù)據(jù)庫技術(shù)分支項目本身外,MySQL技術(shù)周邊工具的開源項目在國內(nèi)出現(xiàn)更早,如愛可生開源社區(qū)。它并不對數(shù)據(jù)庫本身進(jìn)行改造開源,而是對數(shù)據(jù)庫周邊工具進(jìn)行開源,這也是繁榮國內(nèi)MySQL技術(shù)路線的一種積極力量。
以MySQL為代表的開源數(shù)據(jù)庫引領(lǐng)了一個時代,所沉淀下的優(yōu)秀資產(chǎn)和強大生態(tài)也會繼續(xù)在國內(nèi)數(shù)據(jù)庫市場上發(fā)光發(fā)熱。相信在國家政策的引領(lǐng)下,在國內(nèi)無數(shù)MySQL技術(shù)人員的努力貢獻(xiàn)下,國產(chǎn)MySQL技術(shù)路線的數(shù)據(jù)庫乃至整個開源數(shù)據(jù)庫,未來都將大有可為。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )