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