十年經(jīng)典再更新
時(shí)隔十年,《高性能MySQL》再次出版,這是該系列的第四個(gè)版本。過去十年,《高性能MySQL 第三版》已經(jīng)成為除了文檔之外,MySQL相關(guān)開發(fā)者、DBA等從業(yè)者的必讀書目,在豆瓣上也收到了9.3分的好評(píng)。另一方面,在這十年間,MySQL技術(shù)、數(shù)據(jù)庫技術(shù)以及數(shù)據(jù)庫的生態(tài)都發(fā)生了很大的變化,最新版的圖書也相應(yīng)做了大量的更新、精簡(jiǎn)與修訂。這次依舊由我和寧海元、張新銘等一起完成翻譯。如果,英文閱讀沒有大的障礙的朋友,仍然推薦閱讀英文原版,目前在京東、亞馬遜等平臺(tái)都可以買到。如果,想讀中文版的朋友,這次出版的《高性能MySQL 第四版》則是非常不錯(cuò)的選擇。本文,概述了第四版的一些更新與改變,以及MySQL在中國這十年的發(fā)展。另外,文末有一個(gè)“回復(fù)SQL,抽獎(jiǎng)?lì)I(lǐng)取贈(zèng)書”的活動(dòng),感興趣的直接跳到最后部分。新書在京東上已經(jīng)上線。
MySQL在中國的這十年
過去十年也是中國MySQL快速發(fā)展的十年。在2022年,CSDN的中國開發(fā)者調(diào)查報(bào)告中的數(shù)據(jù),在中國,有73%的開發(fā)者都在使用MySQL,穩(wěn)居第一名,且遙遙領(lǐng)先其他數(shù)據(jù)庫。一方面是中國互聯(lián)網(wǎng)在過去十年的快速發(fā)展背后,需要海量的、低成本的數(shù)據(jù)庫存儲(chǔ)方案,另一方面,更重要的,隨著中國開發(fā)者、DBA能力增強(qiáng),從原來的用好開源,逐步成長(zhǎng)為開源背后的重要的貢獻(xiàn)力量。無論是,阿里、騰訊、華為、百度、去哪兒等公司,都在通過各種方式,一方面輸出自己的最佳實(shí)踐,另一方面也在向MySQL代碼庫貢獻(xiàn)自己的力量。
隨著,中國廠商在MySQL技術(shù)使用和商業(yè)上的深入,以阿里云、騰訊云、華為云為代表的中國技術(shù)廠商已經(jīng)成為MySQL社區(qū)重要力量:
在2018年,阿里云數(shù)據(jù)庫RDS團(tuán)隊(duì),因?yàn)槎嘣磸?fù)制、FlashBack等功能獲得了MySQL Community Awards,彭立勛作為代表在Percona Live接受頒獎(jiǎng):參考
2018年,在5.7.17版本,由翟衛(wèi)祥貢獻(xiàn)的關(guān)于Group Commit和GTID的優(yōu)化:參考;2021年,在8.0.24版本中,由翟衛(wèi)祥修復(fù)的關(guān)于InnoDB Recovery階段性能問題:參考。除此之外,翟衛(wèi)祥其實(shí)是比較頻繁的出現(xiàn)在MySQL Release Note的人。也因?yàn)檫@些貢獻(xiàn),翟衛(wèi)祥也在2019年也獲得了MySQL Community Contributor of the Year的獎(jiǎng)項(xiàng):參考。
2019年,騰訊游戲CROS DBA團(tuán)隊(duì)的陳福榮(Vin Chen)、梁飛龍(Felix Liang)也獲得MySQL Community Contributor Award:參考。
2022年,彭祥在今年成為MariaDB Foundation的Board Members,他也是阿里云RDS業(yè)務(wù)的負(fù)責(zé)人。
2022年7月,在最新的8.0.30版本中,來自騰訊CDB團(tuán)隊(duì)的Yuxiang Jiang和Zhou Xinjing修復(fù)了部分關(guān)于InnoDB、PS相關(guān)的Bug:參考。
另外,在MySQL Bug系統(tǒng)上,也經(jīng)常能夠看到國內(nèi)廠商的身影,主要是阿里云和騰訊。
在國內(nèi)社區(qū),諸如丁奇、彭立勛、周彥偉、楊建榮、韓鋒、楊奇龍、葉金榮、沃趣科技、蓋國強(qiáng)、何登成等都非常活躍,通過ACMUG、DBAplus、墨天輪等平臺(tái)推廣數(shù)據(jù)庫的最佳實(shí)踐。另外,國內(nèi)各個(gè)大廠也都還有隱藏著非常多的“掃地僧”級(jí)別的高手,拋頭露面比較少,諸如ba0tiao、江神、Jimmy(這里無法一一列舉)也是中國MySQL社區(qū)非常重要力量。
MySQL憑借著其強(qiáng)大的影響力,也影響著一系列的產(chǎn)品的發(fā)展。在云時(shí)代,MySQL依舊是主角。在2014年AWS推出的Aurora、2017年阿里云推出的PolarDB、2018年騰訊云發(fā)布CynosDB(TDSQL-C前身)都首先選擇了兼容MySQL。而眾多新的數(shù)據(jù)庫,諸如OceanBase、TiDB、PolarDB-X、ClickHouse、AnalyticDB等都或者選擇兼容MySQL或者使用MySQL類似的SQL方言。而各個(gè)云廠商,憑借著MySQL開放、開源,基于其構(gòu)建的RDS、或者云原生數(shù)據(jù)庫都賺的盆滿缽滿,通常,都能夠占到其數(shù)據(jù)庫收入的50%以上。這也從經(jīng)濟(jì)基礎(chǔ)上,保障了各個(gè)云廠商依舊會(huì)堅(jiān)定不易的在MySQL方向投入大量人力,推進(jìn)MySQL的發(fā)展。到目前為止,MySQL數(shù)據(jù)庫也成為了“開源技術(shù)”和“云廠商”之間,在技術(shù)利益非常龐大的時(shí)候,依舊能夠較為“和諧”相處的案例之一。
兼容MySQL的分布式數(shù)據(jù)庫
全球的MySQL數(shù)量約為800萬個(gè),大量的運(yùn)行場(chǎng)景已經(jīng)催生更加垂直和高要求的產(chǎn)品。兼容MySQL的分布式數(shù)據(jù)庫就是其最重要的一個(gè)方向。從需求上來說,隨著數(shù)據(jù)的快速增長(zhǎng),在越來越多的場(chǎng)景下,MySQL單機(jī)架構(gòu)已經(jīng)無法滿足需求,分布式數(shù)據(jù)庫在過去10年也在快速發(fā)展。2010年,陽振坤在淘寶內(nèi)部開始研發(fā)OceanBase,自2015年后,開始逐步在外部探索商業(yè)化,同時(shí)兼容MySQL和Oracle;TiDB于2015年正式發(fā)布,兼容MySQL協(xié)議;2020年,在云棲大會(huì)上,阿里云數(shù)據(jù)庫負(fù)責(zé)人李飛飛也宣布,DRDS正式升級(jí)為PolarDB-X,并于2021年正式開源,也是兼容MySQL協(xié)議。2018年,ShardingSphere發(fā)布(前身為Sharding-JDBC),也是兼容MySQL的。
在中國當(dāng)下,分布式數(shù)據(jù)庫的競(jìng)爭(zhēng)是異常激烈。在今年(2022年)的4月份,TiDB發(fā)布了6.0版本,將TiFlash也正式開源,之后也很快上線TiDB Cloud,上線了阿里云心選商城。OceanBase也于今年的8月發(fā)布了4.0版本,單機(jī)部署最小支持4核8G;分析能力實(shí)現(xiàn)了由全場(chǎng)景向量化能力覆蓋;OceanBase Cloud也會(huì)很快上線。另外,PolarDB-X也在持續(xù)的增強(qiáng),發(fā)布包括了與MySQL兼容性比較好的AUTO_INCREMENT、數(shù)據(jù)熱點(diǎn)診斷、冷熱數(shù)據(jù)存儲(chǔ)分離、Flashback Query等功能。另外,ShardingSphere、TDSQL等也在快速發(fā)展。
另外,在今年9月,TiDB和OceanBase都不約而同的在美國硅谷開始做產(chǎn)品推廣,這個(gè)競(jìng)爭(zhēng)已經(jīng)逐步從國內(nèi)延伸到了海外。這也是該行業(yè)快速發(fā)展與繁榮的體現(xiàn)。
自此,中國的數(shù)據(jù)庫已經(jīng)逐步從最早的用好開源、貢獻(xiàn)開源,慢慢走向自主研發(fā)、獨(dú)立品牌的模式,也從國內(nèi)競(jìng)爭(zhēng)開始走向更大的國際市場(chǎng),這是中國數(shù)據(jù)庫在商業(yè)模式、技術(shù)能力、生態(tài)建設(shè)都更加強(qiáng)大的體現(xiàn)。
新的版本,新的技術(shù)
MySQL 5.1是十年前的主流版本,期間經(jīng)歷了5.5、5.6、5.7,到現(xiàn)在8.0逐步成為當(dāng)前的主流版本。在最新的“第四版”發(fā)布時(shí),MySQL最新的版本為8.0.20,所以,書中很多案例與測(cè)試也都在該版本中經(jīng)過了測(cè)試與驗(yàn)證。
這次出版的《高性能MySQL 第四版》則新增了過去十年MySQL各個(gè)新版本特性。新的版本背后代表的是新的技術(shù)。例如,從5.6開始引入、5.7和8.0版本中逐步成熟的GTID技術(shù),大大提高了MySQL復(fù)制時(shí)的數(shù)據(jù)一致性、以及可運(yùn)維性,也使得MySQL在整個(gè)數(shù)據(jù)流生態(tài)中,變得更加易用;隨著,NoSQL的流行以及部分應(yīng)用或者模塊中Schema Free設(shè)計(jì)的出現(xiàn),MySQL在最近的版本中,一直在不斷增強(qiáng)對(duì)JSON的支持,包括操作JSON函數(shù)支持、性能優(yōu)化、表達(dá)式函數(shù)支持等,使得在MySQL中也可以非常自由、高效的管理JSON數(shù)據(jù)。
性能管理一直是該書目的重點(diǎn)部分,最新版本的MySQL也在不斷的完善Performance Schema(簡(jiǎn)稱“PS”),幫助用戶更加系統(tǒng)的進(jìn)行性能管理與優(yōu)化。在第四版中新增的第三章則系統(tǒng)的介紹了PS,可以幫助讀者系統(tǒng)的了解如何通過PS查看數(shù)據(jù)庫/InnoDB內(nèi)部的運(yùn)行指標(biāo),從而觀測(cè)性能并針對(duì)性的進(jìn)行優(yōu)化。
云數(shù)據(jù)庫已經(jīng)成為數(shù)據(jù)庫領(lǐng)域最重要的方向。本書也增加了關(guān)于云數(shù)據(jù)庫的篇幅,并以AWS Aurora、谷歌云數(shù)據(jù)庫、云主機(jī)自建數(shù)據(jù)庫為代表,介紹了當(dāng)前云數(shù)據(jù)庫的使用、能力以及限制等。隨著云計(jì)算、IoT、互聯(lián)網(wǎng)等技術(shù)發(fā)展,數(shù)據(jù)量也一直在快速增長(zhǎng),本書也增加了關(guān)于如果擴(kuò)展MySQL的章節(jié)與篇幅,包括通過只讀節(jié)點(diǎn)進(jìn)行的讀擴(kuò)展,以及如何通過拆分的方式進(jìn)行寫擴(kuò)展等。
另外,本書另一個(gè)重要特點(diǎn)是做了大量刪減,全書也從原來的第三版約800頁精簡(jiǎn)到約350頁:
刪除了所有的MyISAM引擎相關(guān)的內(nèi)容。MyISAM引擎是最早版本MySQL的原生引擎,但由于其架構(gòu)缺陷、不支持事務(wù)、性能等原因,自8.0版本開始徹底被InnoDB替換。
刪除了大量關(guān)于如何配置MySQL的內(nèi)容。隨著時(shí)間的推移,現(xiàn)在的MySQL文檔已經(jīng)非常詳盡的描述了這部分操作。本書則側(cè)重于原理、使用、最佳實(shí)踐等。
刪除或大大簡(jiǎn)化了諸如分區(qū)表、調(diào)度事件、全文索引、Query Cache等特性的介紹。雖然,在十年前這些都還算是MySQL的“高級(jí)特性”,但現(xiàn)在已經(jīng)為大家所熟悉,而且文檔已經(jīng)了非常詳細(xì)的描述,本書則不再介紹這些內(nèi)容。
當(dāng)然,依舊保留了最重要的部分,包括MySQL架構(gòu)與基礎(chǔ)原理、可靠性管理、SQL優(yōu)化、索引設(shè)計(jì)與優(yōu)化、硬件與軟件適配優(yōu)化、表結(jié)構(gòu)設(shè)計(jì)規(guī)范與原理、復(fù)制技術(shù)、備份與恢復(fù)、垂直與水平擴(kuò)展、云數(shù)據(jù)庫等。
整體上,依舊非常推薦大家購買與閱讀。本書,在翻譯出版過程中也得到了很多數(shù)據(jù)庫領(lǐng)域朋友的支持,包括沃趣科技陳棟、云和恩墨蓋國強(qiáng)、OceanBase的陽振坤、周彥偉等,尤其是,阿里云數(shù)據(jù)庫負(fù)責(zé)人、ACM/IEEE Fellow李飛飛特意撥冗指導(dǎo)并撰寫推薦序言,這里引用如下:
隨著互聯(lián)網(wǎng)行業(yè)以及云計(jì)算產(chǎn)業(yè)的高速發(fā)展,MySQL成為世界范圍內(nèi)以及中國數(shù)據(jù)庫領(lǐng)域最流行的開源數(shù)據(jù)庫。在幾乎所有大型互聯(lián)網(wǎng)業(yè)務(wù)場(chǎng)景中, MySQL都是業(yè)務(wù)架構(gòu)的核心組件之一。廣泛的應(yīng)用也推動(dòng)了MySQL在過去十年的高速發(fā)展,MySQL社區(qū)相繼推出了5.6、5.7、8.0版本,從性能、可擴(kuò)展性、安全性、穩(wěn)定性、可維護(hù)性、易用性等維度都有了非常大的發(fā)展。《高性能MySQL 第三版》是2012年發(fā)布的,最新版本的《高性能MySQL 第四版》在上一版的內(nèi)容上延續(xù)了之前的經(jīng)典內(nèi)容,包括架構(gòu)設(shè)計(jì)、優(yōu)化、高可用等內(nèi)容,同時(shí)新增了云數(shù)據(jù)庫、擴(kuò)展性等過去10年發(fā)展的相關(guān)內(nèi)容,另外,也增加MySQL過去10年里的最新版本包括5.7、8.0版本的最新的特性和內(nèi)容。
MySQL作為當(dāng)下最流行的開源數(shù)據(jù)庫,本書從實(shí)踐的角度涵蓋了數(shù)據(jù)庫系統(tǒng)的架構(gòu)設(shè)計(jì)、鎖、性能管理、高可用等內(nèi)容,除了作為MySQL的參考書之外,也可以作為數(shù)據(jù)庫系統(tǒng)原理和設(shè)計(jì)的一個(gè)實(shí)現(xiàn)參考。隨著云數(shù)據(jù)庫的流行,這本書的最新版也做了相應(yīng)的調(diào)整,例如,將數(shù)據(jù)庫的安裝、配置、監(jiān)控搭建等基礎(chǔ)操作內(nèi)容(云數(shù)據(jù)庫封裝并提供了大部分這些能力)做了大幅度的縮減。因此,本書也非常適合面向云數(shù)據(jù)庫系統(tǒng)開發(fā)者的一本MySQL參考書籍。如本書的名字所述,本書在內(nèi)核設(shè)計(jì)、性能優(yōu)化方面,依舊是著墨最多的部分,深入介紹了鎖管理、并發(fā)控制、Performance Schema使用、索引優(yōu)化等內(nèi)核機(jī)制,可以幫助企業(yè)的DBA、或者想深入了解MySQL優(yōu)化的開發(fā)者,以及云數(shù)據(jù)庫開發(fā)者更高效的使用和拓展MySQL。
本書的譯者是云數(shù)據(jù)庫領(lǐng)域和MySQL數(shù)據(jù)庫的資深專家,有著很強(qiáng)的技術(shù)能力和行業(yè)實(shí)踐以及業(yè)務(wù)洞察,同時(shí)也具備非常出色的業(yè)務(wù)架構(gòu)設(shè)計(jì)和商業(yè)化經(jīng)驗(yàn)。在深入理解原著的基礎(chǔ)上,結(jié)合自己的洞察和經(jīng)驗(yàn)提供了出色的專業(yè)化中文版本,是MySQL領(lǐng)域不可多得的一本必讀書目。
關(guān)于本文作者
周振興
周振興曾是阿里資深數(shù)據(jù)庫技術(shù)專家(花名:蘇普),在淘寶、阿里云數(shù)據(jù)庫團(tuán)隊(duì)總計(jì)供職12年,是阿里去IOE核心成員,是阿里核心系統(tǒng)從集中式到分布式架構(gòu)的開創(chuàng)者,有豐富的MySQL性能優(yōu)化、Troubleshooting經(jīng)驗(yàn),曾擔(dān)任阿里云明星產(chǎn)品PolarDB產(chǎn)品管理負(fù)責(zé)人,阿里云數(shù)據(jù)庫產(chǎn)品與運(yùn)營(yíng)總監(jiān)等職責(zé)。目前,在新的數(shù)據(jù)庫創(chuàng)業(yè)征程當(dāng)中。
審核編輯 黃昊宇
-
數(shù)據(jù)庫系統(tǒng)
+關(guān)注
關(guān)注
0文章
31瀏覽量
9793 -
MySQL
+關(guān)注
關(guān)注
1文章
849瀏覽量
27614
發(fā)布評(píng)論請(qǐng)先 登錄
電機(jī)與拖動(dòng)基礎(chǔ) 第四版
ADSP-21467/ADSP-21469第四代高性能DSP技術(shù)手冊(cè)

LMH6522 高性能四路DVGA技術(shù)手冊(cè)

LMH6523 具有快速斷電模式的高性能四通道 DVGA技術(shù)手冊(cè)

模電童詩白第四版
曝三星已量產(chǎn)第四代4nm芯片
適用于MySQL和MariaDB的.NET連接器

《2024年飛騰硬件生態(tài)產(chǎn)品手冊(cè)(第四版)》上線
華為云 Flexus X 實(shí)例 MySQL 性能加速評(píng)測(cè)及對(duì)比

Flexus X 實(shí)例搭配華為云 EulerOS,快速部署 MySQL 并執(zhí)行讀寫性能測(cè)試

RK3566高性能低功耗四核應(yīng)用處理器數(shù)據(jù)手冊(cè)
CDCLVP2102四路LVPECL輸出高性能時(shí)鐘緩沖器數(shù)據(jù)表

CDCLVP1204四路LVPECL輸出高性能時(shí)鐘緩沖器數(shù)據(jù)表

評(píng)論