描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121442575
如何释放MySQL的全部能量?通过《高性能MySQL》(第4版),你将学习到各种高级技术,包括设置服务器级别目标,设计schema、索引和查询,调整服务器、操作系统和硬件,以充分发挥平台的潜力。本书还向数据库管理员介绍了通过复制、负载均衡、高可用性和故障切换来扩展应用程序的安全且实用的方法。
《高性能MySQL》(第4版)旨在反映云和自托管MySQL的最新进展、InnoDB性能,以及新特性和新工具,可以帮助你设计一个可随业务扩展的关系数据平台。你将学习到数据库安全方面的最佳实践,以及在性能和稳定性方面来之不易的经验。
·深入了解MySQL的体系结构,包括其存储引擎的关键事实。·了解服务器配置如何与硬件和部署选择配合使用。
·让查询性能成为软件交付过程的一部分。
·检查MySQL复制和高可用性的增强功能。·比较托管云环境中的不同MySQL产品。
·探索MySQL从应用端配置到服务器调优的全栈优化。·将传统的数据库管理任务转变为自动化流程。
《高性能MySQL(第3版)》是MySQL 领域的极佳之作,拥有广泛的影响力。第4版更新了大量的内容,全书共分为16章和6 个附录,内容涵盖MySQL架构和历史,基准测试和性能剖析,数据库软硬件性能优化,复制、备份和恢复,高可用与高可扩展性,以及云端的MySQL和MySQL相关工具等方面的内容。每一章都是相对独立的主题,读者可以有选择性地单独阅读。《高性能MySQL(第4版)》不但适合数据库管理员(DBA)阅读,也适合开发人员参考学习。不管是数据库新手还是专家,相信都能从本书有所收获。
序 xxiii
前言 xxv
致谢 xxix
第 1 章 MySQL 架构 1
第 2 章 可靠性工程世界中的监控17
第 3 章 Performance Schema 35
第 4 章 操作系统和硬件优化 66
第 5 章 优化服务器设置 86
第 6 章 schema 设计与管理109
第 7 章 创建高性能的索引136
第 8 章 查询性能优化170
第 9 章 复制205
第 10 章 备份与恢复231
第 11 章 扩展 MySQL258
第 12 章 云端的 MySQL280
第 13 章 MySQL 的合规性291
附录 A 升级 MySQL305
附录 B Kubernetes 上的 MySQL310
推荐序
随着互联网行业以及云计算产业的高速发展,MySQL 成为世界范围内以及中国数据库领域主流的开源数据库。在几乎所有大型互联网业务场景中,MySQL 都是业务架构的核心组件之一。广泛的应用也推动了 MySQL 在过去十年的高速发展,MySQL 社区相继推出了 5.6、5.7、8.0 版本,从性能、可扩展性、安全性、稳定性、可维护性、易用性等维度都有了非常大的发展。《高性能 MySQL》(第 3 版)是 2012 年出版的,新版《高性能 MySQL》(第 4 版)在上一版内容的基础上延续了之前的经典内容,包括架构设计、优化、高可用等内容,同时新增了云数据库、扩展性等过去十年发展的相关内容,
另外还增加了 MySQL 过去十年里的新版本(包括 5.7、8.0 版本)的新特性。
MySQL 是当下主流的开源数据库之一,本书从实践的角度涵盖了数据库系统的架构设计、锁、性能管理、高可用等内容,除了可作为 MySQL 的参考书之外,也可以作为数据库系统原理和设计的一个实现参考。云数据库已流行多年,本书最新版对云数据库的内容也做了相应的调整。例如,对数据库的安装、配置、监控搭建等基础操作内容进行了大幅缩减,增加了对云端具体操作的介绍。因此,本书也非常适合作为面向云数据库系统开发者的一本 MySQL 参考图书。如本书的名字所述,本书在内核设计、性能优化方面,依旧是着墨最多的部分,深入介绍了锁管理、并发控制、Performanc Schema 使用、
索引优化等内核机制,可以帮助企业的 DBA、想深入了解 MySQL 优化的开发者,以及云数据库开发者更高效地使用和拓展 MySQL。
本书的译者是云数据库领域和 MySQL 数据库的资深专家,有着很强的技术能力、行业实践以及业务洞察,同时具备非常出色的业务架构设计和商业化经验。在深入理解原著的基础上,译者们结合自己的洞察和经验提供了出色的专业化中文版本,是 MySQL 领域不可多得的一本必读书目。
——李飞飞(飞刀) ACM/IEEE Fellow,阿里云数据库负责人
译者序
十年时光,转瞬即逝 ;重译经典,心境迥异。
2012 年,电子工业出版社博文视点公司的张春雨找我来组织翻译《高性能 MySQL》的第 3 版 ;2022 年,还是张春雨找我来组织翻译《高性能 MySQL》的第 4 版。2012 年我还在淘宝 DBA 团队,淘宝核心交易系统刚刚完成“去 IOE”。十年过去,国内的数据库江湖已经换了模样,云数据库成为很多公司的选择,国产数据库创业公司也此起彼伏,而 MySQL 依然高居 DB-Engines 排行榜亚军,还是最受欢迎的开源数据库。根据中国信息通信研究院的《数据库发展研究报告(2021 年)》,截至 2021 年 6 月,国产关系数据库产品共有 81 个,其中 23 个是基于 MySQL 二次开发的,占比为 28.4%。
从 2012 年开始,我从淘宝 DBA 团队到手机淘宝数据团队,再到阿里云数加团队,直到2015 年年底离职出来联合创立袋鼠云。至今在数据领域创业也有 6 年多了,目前主要管理袋鼠云集团旗下的两家子公司,分别是聚焦数字孪生的易知微和聚焦可观测业务运维的云掣。当年淘宝 DBA 团队的很多成员如今也在创业的路上,他们的工作也和 MySQL数据库有或多或少的关系,比如本书的另外两位译者周振兴和张新铭。
在本书第 3 版出版的时候,MySQL 还是 5.5 版本。此后在 2015 年发布的 5.7 版和 2018年发布的 8.0 版是两个重要的版本,目前的最新版本是 2022 年 4 月发布的 8.0.29。本书的新版中增加了大量对 MySQL 5.7 和 8.0 版本新特性的介绍,删除了一些在新版本中已经废弃或者不再常用的功能。另外,本书还增加了对云数据库的介绍,减少了在官方文档中已有的基础使用和配置相关的内容。这些年,MySQL 在互联网的大量场景中被大规模地应用和验证,使得本书第 4 版在继续关注高性能之外,还使用了更多的篇幅来介绍如何实现 MySQL 的大规模可扩展应用,这是相比第 3 版最大的不同,所以本书还增加了新卖点“经过大规模运维验证的策略”。
本书的翻译依然是团队合作的结晶,其中我负责第 1、2、3、4、5、6、13 章和附录的翻译,周振兴负责第 7、8、9、10 章的翻译,张新铭负责第 11、12 章的翻译,另外一位同事刘开阳也参与了部分章节的翻译和审稿工作。在第 3 版的基础之上,这次整体工作的进度还比较顺利。但创业公司各种事务繁忙,译者们的时间精力都有限,难免存在疏漏之处,恳请读者不吝指出。
我要感谢易知微和云掣团队的同事,让我能够在工作之余抽出时间完成本书的翻译。当然更要感谢我的妻子 Lalla,在我以创业和翻译为借口之际,毫无怨言地照顾我和我们的孩子则一的生活。是的,十年之后,我们有了新的家庭成员,这个月他已经三岁啦!
宁海元,易知微 & 云掣 CEO
2022 年 6 月于未来科技城
序
自近 20 年前《高性能 MySQL》(第 1 版)问世以来,它已经成为每一位被新聘成为数据库管理员、系统工程师或数据库开发人员桌上的第一本书。
最初当 Jeremy Zawodny 和 Derek Balling 着手写一本关于大规模运行 MySQL 的书,为多年的谜题带来清晰的思路和结构时,它注定会成为 MySQL 世界的经典。经过十几年的多版更新,有些原始内容和后续更新一直有效,有些则不然。
MySQL 本身在进步,MySQL 社区改变了很多,我们使用 MySQL 的方式也改变了。现在,在第 4 版中,Silvia 和 Jeremy 承担了艰巨的任务,要把这本经典图书更新到当今时代,他们是完成这项任务的最佳搭档。
我在 MySQL 社区工作的这段时间(现在已经超过 20 年了 !),始终不变的一件事情,就是变化。每个人使用 MySQL(或者说通用数据库)的方式都略有不同,对它有不同的期望。
每个人都会做出一些好的决定,也会做出一些善意但值得怀疑的决定。当然,也总会做出一些糟糕的决定。有时,进步是容易的,但有时需要明智的建议,以及直接从专家那里学到思考问题的新方法。
Silvia 和 Jeremy 就是这样的专家。从体系结构、优化、复制、备份等各个方面,我们都将受益于他们在 MySQL 领域分享的丰富经验。在新的第 4 版中,许多主题得到了新的处理,许多过时的知识被删除,许多错误被纠正,这些工作最终为本书带来了新的内容和新的风格。
就像最初的第 1 版一样(现在来看它的内容已经很老了,而且内容较少),第 4 版承诺将帮助最新一代的开发人员、数据库管理人员和他们的老板进入 MySQL 的新世界 ;这个世界有时很令人兴奋,但有时也可能让人抓狂。
谢谢 Silvia 和 Jeremy,感谢你们为培养下一代 MySQL 极客所做的辛勤工作,这些人将确保这个世界上数据的安全,也将确保全球顶级网站和其他数据驱动的系统在其业务峰值时性能的卓越。
祝贺你们,在新冠肺炎病毒肆虐和其他各种事情干扰的情况下,依然完成了这项工作。
我们其他人将确保为所有新的数据库管理员提供这本书。
Jeremy Cole 2021 年 10 月于内华达州里诺附近
前言
由 Oracle 维护的官方文档为你提供了安装、配置和与 MySQL 交互所需的基础知识。本书可以作为官方文档的配套图书,帮助你了解如何更好地利用 MySQL 作为某个应用场景的强大数据平台。
第 4 版扩展了在操作数据库过程中的合规性和安全性方面的内容,这两方面所扮演的角色日益重要。隐私法和数据主权等新的现实问题改变了公司构建产品的方式,这自然会给技术架构的发展带来新的复杂性。
这本书是写给谁的
这本书首先是为那些希望在运行 MySQL 方面提高专业技能的工程师准备的。这个版本假设读者熟悉关系数据库管理系统(RDBMS)的基本原理。我们还假设读者有常规系统管理、网络和操作系统维护方面的经验。
我们将为你提供经过验证的策略,让你可以使用现代体系结构及更先进的工具和实践来大规模运行 MySQL。
最后,我们希望你能从本书中获得 MySQL 内部原理和扩展策略的相关知识,能够帮助你在组织中扩展数据存储层。我们还希望你从书中新发现的见解,可以帮助你学习和实践一种系统的方法,用来设计、维护和检测基于 MySQL 的系统架构。
第 4 版有什么不同
《高性能 MySQL》多年来一直是数据库工程社区的一部分,从第 1 版到第 3 版的 3 本书分别发布于 2004 年、2008 年和 2012 年。在以前的版本中,我们专注于深入剖析内部设计,解释各种调优设置的含义,并提供有效更改设置的知识,以此来达到我们的目标,告诉开发者和管理员如何优化 MySQL 的每一点性能。这个版本保持了相同的目标,但有不同的侧重点。
自第 3 版出版以来,MySQL 发布了 3 个新的大版本,其生态系统发生了很大变化。它在工具范围上大大扩展,突破了 Perl 和 Bash 脚本,并发展出成熟的工具解决方案。全新的开源项目已经建立,这改变了企业管理 MySQL 的方式。
传统的数据库管理员(DBA)的角色也在不断演变。业内有一个古老的笑话,DBA 的全称是“不要费心去问”(Don’t Bother Asking)。DBA 在软件开发生命周期(SDLC)中以“减速带”而闻名,这并不是因为他们有一种守旧的态度,而仅仅是因为数据库的发展速度不如 SDLC 的其他部分快。
有了《数据库可靠性工程 :数据库系统设计与运维指南》(莱恩 · 坎贝尔、夏丽蒂 · 梅杰斯著,O’Reilly 出版)等书,这已经成为一个新的现实 :技术组织更多地将数据库工程师视为业务增长的促进因素,而不是所有数据库的唯一操作员。DBA 的主要日常工作曾经涉及schema 设计和查询优化,现在他们负责向开发人员传授这些技能,并管理系统,使开发人员能够快速、安全地部署自己的模式变更。
基于这些变化,我们认为不应该再将本书的重点放在优化 MySQL 以将性能提高几个百分点上,而应当是为人们提供他们所需要的信息,以便就如何最好地使用 MySQL 做出明智的决定。这首先要理解 MySQL 是如何设计的,也就是要理解 MySQL 擅长做什么,不擅长做什么。
MySQL 的现代版本提供了合理的默认值,除非你遇到非常具体的扩展问题,否则几乎不需要进行任何调整。现代团队需要更多地处理模式更改、合规性问题和分片。我们希望本书能够全面指导当下的公司如何更好地大规模运行 MySQL。
《高性能 MySQL》从第 2 版引入国内以来一直是业界经典。宁海元翻译的第 3 版让大部分 MySQL 从业人员受益匪浅,十年后的今天我们又迎来了《高性能 MySQL》的第 4 版。十年来,中国的 MySQL 发展从部分互联网场景发展到全领域场景,本书也新增了大量云化、规模化、可扩展等特性的内容,通俗易懂又专业深入,是时候更新一下你的书架了。
——陈栋,沃趣科技创始人 &CEO
岁月洗练,历久弥新。高性能是一个永恒的话题和不懈的追求。在 MySQL 领域,本书无疑是最佳的表率之一。从互联网到企业级应用,从独立部署到虚拟化和云计算,十年之间,天翻地覆,然而 MySQL 的魅力有增无减。数据库性能涉及很多复杂的技术领域,而本书娓娓道来深入浅出的风格让人着迷,使得系统性的理解水到渠成。当我读到Performance Schema 常因性能影响而被建议关闭的主题时,仿佛看到与当年 Oracle 同样的演进历程,MySQL 逐渐丰富的可观测性,已经使其性能诊断能力接近了商业数据库的水准,臻至大成。
——盖国强,云和恩墨创始人,鲲鹏 MVP
《高性能 MySQL》已经是 MySQL DBA 的案前常备图书。这本书不仅教会了大家很多MySQL 的Best Practice,同时还从内核实现层面深入地解释原理,做到了知其然更知其所以然。所以这不仅是一本很好的 MySQL 工具书,同时也是有志于从事数据库内核研发的朋友很好的参考资料。
——黄东旭,PingCAP 联合创始人兼 CTO
无论是在中国还是全世界,MySQL 都是当下极为流行、使用极为广泛的开源关系数据库。《高性能 MySQL》是 MySQL 社区非常有影响力的一本书,第 4 版使得这本书与近十年MySQL 的发展和实践保持了高度同步。
——阳振坤,OceanBase 数据库创始人
从 2009 年开始,在过去的十几年里,《高性能 MySQL》一直陪伴着我。它也是我向MySQL 爱好者推荐最多的一本书,甚至超过了我自己写的《MySQL 运维内参》。它可以帮助 MySQL 相关人员把自己的数据库管理和运维能力快速提升到相对较高的水平并解决工作中碰到的实际问题,是一本不可多得的经典之作。近几年来,MySQL 的发展很快,在内核层的变化也很大,同时伴随着云原生的发展,MySQL 也是云上数据库的主流产品。本书第 4 版恰逢其时地增加了相应的内容,在技术深度和知识广度上做到了很好的平衡。非常感谢原作者和译者所做的努力,期待更多的人通过本书获得更多的 MySQL 知识。通过从本书中学到的知识,在工作中解决实际问题,这是对为本书付出劳动的人的最好回馈。
——周彦伟,极数云舟创始人,Oracle MySQL ACE Director,中国计算机行业协会数据库专委会会长
我喜欢这个新版本,它将重点转向了现代、务实的通过团队成员传递商业价值的思维模式。它改变了前几版只关注复杂的内部结构和理论从而导致收益缩减的短视,转向了更全面的视角。本书仍然覆盖关于“数据库如何工作”的知识,但现在是以一个全新的、人性化的观点呈现的,这是非常有必要的。
——Baron Schwartz,《高性能 MySQL》第 2 版和第 3 版的主要作者
自 17 年前第 1 版面世以来,《高性能 MySQL》一直是 MySQL 世界的重要组成部分。MySQL 一直在向前发展,Silvia 和 Jeremy 做了一项伟大的工作,使这本书的内容与现代 MySQL 保持同步。
——Jeremy Cole
本书第 4 版更新了现代实践经验,为 MySQL 管理员和开发者提供了丰富、可靠的建议。
——Shlomi Noach,PlanetScale 数据库工程师
《高性能 MySQL》(第 4 版)有了新的关注点,它不再只是深挖 MySQL 的每一点性能,我们现在拥有一个由工具和供应商组成的大型生态系统。Silvia 和 Jeremy 完美地详述了MySQL 如何适应新的局面。不管你用什么方式使用 MySQL,这本书都是不可离手的。
——Sugu Sougoumarane,Vitess 联合创始人,PlanetScale CTO
Silvia 和 Jeremy 做了一项了不起的工作,他们既保留了本书的核心内容,又对其进行了更新,以覆盖快速变化的 MySQL 世界。
——Peter Zaitsev,Percona 创始人兼 CEO,《高性能 MySQL》(第 3 版)作者之一
评论
还没有评论。