《高性能 MySQL 第四版》正式上市
十年经典再更新
时隔十年,《高性能 MySQL》再次出版,这是该系列的第四个版本。过去十年,《高性能 MySQL 第三版》已经成为除了文档之外,MySQL 相关开发者、DBA 等从业者的必读书目,在豆瓣上也收到了 9.3 分的好评。另一方面,在这十年间,MySQL 技术、数据库技术以及数据库的生态都发生了很大的变化,最新版的图书也相应做了大量的更新、精简与修订。这次依旧由我和宁海元、张新铭等一起完成翻译。如果,英文阅读没有大的障碍的朋友,仍然推荐阅读英文原版,目前在京东、亚马逊等平台都可以买到。如果,想读中文版的朋友,这次出版的《高性能 MySQL 第四版》则是非常不错的选择。本文,概述了第四版的一些更新与改变,以及 MySQL 在中国这十年的发展。另外,文末有一个“回复 SQL,抽奖领取赠书”的活动,感兴趣的直接跳到最后部分。新书在京东上已经上线。
MySQL 在中国的这十年
过去十年也是中国 MySQL 快速发展的十年。在 2022 年,CSDN 的中国开发者调查报告中的数据,在中国,有 73%的开发者都在使用 MySQL,稳居第一名,且遥遥领先其他数据库。一方面是中国互联网在过去十年的快速发展背后,需要海量的、低成本的数据库存储方案,另一方面,更重要的,随着中国开发者、DBA 能力增强,从原来的用好开源,逐步成长为开源背后的重要的贡献力量。无论是,阿里、腾讯、华为、百度、去哪儿等公司,都在通过各种方式,一方面输出自己的最佳实践,另一方面也在向 MySQL 代码库贡献自己的力量。
随着,中国厂商在 MySQL 技术使用和商业上的深入,以阿里云、腾讯云、华为云为代表的中国技术厂商已经成为 MySQL 社区重要力量:
在 2018 年,阿里云数据库 RDS 团队,因为多源复制、FlashBack 等功能获得了 MySQL Community Awards,彭立勋作为代表在 Percona Live 接受颁奖:参考
2018 年,在 5.7.17 版本,由翟卫祥贡献的关于 Group Commit 和 GTID 的优化:参考;2021 年,在 8.0.24 版本中,由翟卫祥修复的关于 InnoDB Recovery 阶段性能问题:参考。除此之外,翟卫祥其实是比较频繁的出现在 MySQL Release Note 的人。也因为这些贡献,翟卫祥也在 2019 年也获得了 MySQL Community Contributor of the Year 的奖项:参考。
2019 年,腾讯游戏 CROS DBA 团队的陈福荣(Vin Chen)、梁飞龙(Felix Liang)也获得 MySQL Community Contributor Award:参考。
2022 年,彭祥在今年成为 MariaDB Foundation 的 Board Members,他也是阿里云 RDS 业务的负责人。
2022 年 7 月,在最新的 8.0.30 版本中,来自腾讯 CDB 团队的 Yuxiang Jiang 和 Zhou Xinjing 修复了部分关于 InnoDB、PS 相关的 Bug:参考。
另外,在 MySQL Bug 系统上,也经常能够看到国内厂商的身影,主要是阿里云和腾讯。
在国内社区,诸如丁奇、彭立勋、周彦伟、杨建荣、韩锋、杨奇龙、叶金荣、沃趣科技、盖国强、何登成等都非常活跃,通过 ACMUG、DBAplus、墨天轮等平台推广数据库的最佳实践。另外,国内各个大厂也都还有隐藏着非常多的“扫地僧”级别的高手,抛头露面比较少,诸如 ba0tiao、江神、Jimmy(这里无法一一列举)也是中国 MySQL 社区非常重要力量。
MySQL 凭借着其强大的影响力,也影响着一系列的产品的发展。在云时代,MySQL 依旧是主角。在 2014 年 AWS 推出的 Aurora、2017 年阿里云推出的 PolarDB、2018 年腾讯云发布 CynosDB(TDSQL-C 前身)都首先选择了兼容 MySQL。而众多新的数据库,诸如 OceanBase、TiDB、PolarDB-X、ClickHouse、AnalyticDB 等都或者选择兼容 MySQL 或者使用 MySQL 类似的 SQL 方言。而各个云厂商,凭借着 MySQL 开放、开源,基于其构建的 RDS、或者云原生数据库都赚的盆满钵满,通常,都能够占到其数据库收入的 50%以上。这也从经济基础上,保障了各个云厂商依旧会坚定不易的在 MySQL 方向投入大量人力,推进 MySQL 的发展。到目前为止,MySQL 数据库也成为了“开源技术”和“云厂商”之间,在技术利益非常庞大的时候,依旧能够较为“和谐”相处的案例之一。
兼容 MySQL 的分布式数据库
全球的 MySQL 数量约为 800 万个,大量的运行场景已经催生更加垂直和高要求的产品。兼容 MySQL 的分布式数据库就是其最重要的一个方向。从需求上来说,随着数据的快速增长,在越来越多的场景下,MySQL 单机架构已经无法满足需求,分布式数据库在过去 10 年也在快速发展。2010 年,阳振坤在淘宝内部开始研发 OceanBase,自 2015 年后,开始逐步在外部探索商业化,同时兼容 MySQL 和 Oracle;TiDB 于 2015 年正式发布,兼容 MySQL 协议;2020 年,在云栖大会上,阿里云数据库负责人李飞飞也宣布,DRDS 正式升级为 PolarDB-X,并于 2021 年正式开源,也是兼容 MySQL 协议。2018 年,ShardingSphere 发布(前身为 Sharding-JDBC),也是兼容 MySQL 的。
在中国当下,分布式数据库的竞争是异常激烈。在今年(2022 年)的 4 月份,TiDB 发布了 6.0 版本,将 TiFlash 也正式开源,之后也很快上线 TiDB Cloud,上线了阿里云心选商城。OceanBase 也于今年的 8 月发布了 4.0 版本,单机部署最小支持 4 核 8G;分析能力实现了由全场景向量化能力覆盖;OceanBase Cloud 也会很快上线。另外,PolarDB-X 也在持续的增强,发布包括了与 MySQL 兼容性比较好的 AUTO_INCREMENT、数据热点诊断、冷热数据存储分离、Flashback Query 等功能。另外,ShardingSphere、TDSQL 等也在快速发展。
另外,在今年 9 月,TiDB 和 OceanBase 都不约而同的在美国硅谷开始做产品推广,这个竞争已经逐步从国内延伸到了海外。这也是该行业快速发展与繁荣的体现。
自此,中国的数据库已经逐步从最早的用好开源、贡献开源,慢慢走向自主研发、独立品牌的模式,也从国内竞争开始走向更大的国际市场,这是中国数据库在商业模式、技术能力、生态建设都更加强大的体现。
新的版本,新的技术
MySQL 5.1 是十年前的主流版本,期间经历了 5.5、5.6、5.7,到现在 8.0 逐步成为当前的主流版本。在最新的“第四版”发布时,MySQL 最新的版本为 8.0.20,所以,书中很多案例与测试也都在该版本中经过了测试与验证。
这次出版的《高性能 MySQL 第四版》则新增了过去十年 MySQL 各个新版本特性。新的版本背后代表的是新的技术。例如,从 5.6 开始引入、5.7 和 8.0 版本中逐步成熟的 GTID 技术,大大提高了 MySQL 复制时的数据一致性、以及可运维性,也使得 MySQL 在整个数据流生态中,变得更加易用;随着,NoSQL 的流行以及部分应用或者模块中 Schema Free 设计的出现,MySQL 在最近的版本中,一直在不断增强对 JSON 的支持,包括操作 JSON 函数支持、性能优化、表达式函数支持等,使得在 MySQL 中也可以非常自由、高效的管理 JSON 数据。
性能管理一直是该书目的重点部分,最新版本的 MySQL 也在不断的完善 Performance Schema(简称“PS”),帮助用户更加系统的进行性能管理与优化。在第四版中新增的第三章则系统的介绍了 PS,可以帮助读者系统的了解如何通过 PS 查看数据库/InnoDB 内部的运行指标,从而观测性能并针对性的进行优化。
云数据库已经成为数据库领域最重要的方向。本书也增加了关于云数据库的篇幅,并以 AWS Aurora、谷歌云数据库、云主机自建数据库为代表,介绍了当前云数据库的使用、能力以及限制等。随着云计算、IoT、互联网等技术发展,数据量也一直在快速增长,本书也增加了关于如果扩展 MySQL 的章节与篇幅,包括通过只读节点进行的读扩展,以及如何通过拆分的方式进行写扩展等。
另外,本书另一个重要特点是做了大量删减,全书也从原来的第三版约 800 页精简到约 350 页:
删除了所有的 MyISAM 引擎相关的内容。MyISAM 引擎是最早版本 MySQL 的原生引擎,但由于其架构缺陷、不支持事务、性能等原因,自 8.0 版本开始彻底被 InnoDB 替换。
删除了大量关于如何配置 MySQL 的内容。随着时间的推移,现在的 MySQL 文档已经非常详尽的描述了这部分操作。本书则侧重于原理、使用、最佳实践等。
删除或大大简化了诸如分区表、调度事件、全文索引、Query Cache 等特性的介绍。虽然,在十年前这些都还算是 MySQL 的“高级特性”,但现在已经为大家所熟悉,而且文档已经了非常详细的描述,本书则不再介绍这些内容。
当然,依旧保留了最重要的部分,包括 MySQL 架构与基础原理、可靠性管理、SQL 优化、索引设计与优化、硬件与软件适配优化、表结构设计规范与原理、复制技术、备份与恢复、垂直与水平扩展、云数据库等。
整体上,依旧非常推荐大家购买与阅读。本书,在翻译出版过程中也得到了很多数据库领域朋友的支持,包括沃趣科技陈栋、云和恩墨盖国强、OceanBase 的阳振坤、周彦伟等,尤其是,阿里云数据库负责人、ACM/IEEE Fellow 李飞飞 特意拨冗指导并撰写推荐序言,这里引用如下:
随着互联网行业以及云计算产业的高速发展, MySQL 成为世界范围内以及中国数据库领域最流行的开源数据库。在几乎所有大型互联网业务场景中, MySQL 都是业务架构的核心组件之一。广泛的应用也推动了 MySQL 在过去十年的高速发展,MySQL 社区相继推出了 5.6、5.7、8.0 版本,从性能、可扩展性、安全性、稳定性、可维护性、易用性等维度都有了非常大的发展。《高性能 MySQL 第三版》是 2012 年发布的,最新版本的《高性能 MySQL 第四版》在上一版的内容上延续了之前的经典内容,包括架构设计、优化、高可用等内容,同时新增了云数据库、扩展性等过去 10 年发展的相关内容,另外,也增加 MySQL 过去 10 年里的最新版本包括 5.7、8.0 版本的最新的特性和内容。
MySQL 作为当下最流行的开源数据库,本书从实践的角度涵盖了数据库系统的架构设计、锁、性能管理、高可用等内容,除了作为 MySQL 的参考书之外,也可以作为数据库系统原理和设计的一个实现参考。随着云数据库的流行,这本书的最新版也做了相应的调整,例如,将数据库的安装、配置、监控搭建等基础操作内容(云数据库封装并提供了大部分这些能力)做了大幅度的缩减。因此,本书也非常适合面向云数据库系统开发者的一本 MySQL 参考书籍。如本书的名字所述,本书在内核设计、性能优化方面,依旧是着墨最多的部分,深入介绍了锁管理、并发控制、Performance Schema 使用、索引优化等内核机制,可以帮助企业的 DBA、或者想深入了解 MySQL 优化的开发者,以及云数据库开发者更高效的使用和拓展 MySQL。
本书的译者是云数据库领域和 MySQL 数据库的资深专家,有着很强的技术能力和行业实践以及业务洞察,同时也具备非常出色的业务架构设计和商业化经验。在深入理解原著的基础上,结合自己的洞察和经验提供了出色的专业化中文版本,是 MySQL 领域不可多得的一本必读书目。
抽奖赠书
最后,这里将拿出 10 本书(来自电子工业出版社的赠书),免费赠送大家,可以通过后台公众号后台回复,如下 SQL 参与抽奖,即可获得赠书:
抽奖规则
复制 SQL+填写邮箱,发送至公众号后台,立即抽奖
SELECT book FROM 9z.cloud
WHERE email='xxx@xxx' -- your email
最终中奖结果一周后公布,并通过邮件发送至幸运儿邮箱,未收到邮件的中奖小伙伴可私信本号后台~
关于本文作者
周振兴
周振兴曾是阿里资深数据库技术专家(花名:苏普),在淘宝、阿里云数据库团队总计供职 12 年,是阿里去 IOE 核心成员,是阿里核心系统从集中式到分布式架构的开创者,有丰富的 MySQL 性能优化、Troubleshooting 经验,曾担任阿里云明星产品 PolarDB 产品管理负责人,阿里云数据库产品与运营总监等职责。目前,在新的数据库创业征程当中。
立即点击关注,获取更多精彩内容~
评论