新書推薦:
《
大国脊梁:漫画版
》
售價:NT$
374.0
《
跟着渤海小吏读历史:大唐气象(全三册)
》
售價:NT$
989.0
《
心智的构建:大脑如何创造我们的精神世界
》
售價:NT$
352.0
《
美国小史(揭秘“美国何以成为美国”,理解美国的经典入门读物)
》
售價:NT$
352.0
《
中国古代北方民族史丛书——东胡史
》
售價:NT$
576.0
《
巨人传(插图珍藏本)
》
售價:NT$
3289.0
《
地下(村上春树沙林毒气事件的长篇纪实)
》
售價:NT$
332.0
《
偿还:债务与财富的阴暗面
》
售價:NT$
347.0
|
編輯推薦: |
如何释放MySQL的全部能量?通过《高性能MySQL》(第4版),你将学习到各种高级技术,包括设置服务器级别目标,设计schema、索引和查询,调整服务器、操作系统和硬件,以充分发挥平台的潜力。本书还向数据库管理员介绍了通过复制、负载均衡、高可用性和故障切换来扩展应用程序的安全且实用的方法。
《高性能MySQL》(第4版)旨在反映云和自托管MySQL的最新进展、InnoDB性能,以及新特性和新工具,可以帮助你设计一个可随业务扩展的关系数据平台。你将学习到数据库安全方面的最佳实践,以及在性能和稳定性方面来之不易的经验。
·深入了解MySQL的体系结构,包括其存储引擎的关键事实。·了解服务器配置如何与硬件和部署选择配合使用。
·让查询性能成为软件交付过程的一部分。
·检查MySQL复制和高可用性的增强功能。·比较托管云环境中的不同MySQL产品。
·探索MySQL从应用端配置到服务器调优的全栈优化。·将传统的数据库管理任务转变为自动化流程。
|
內容簡介: |
《高性能MySQL(第3版)》是MySQL 领域的极佳之作,拥有广泛的影响力。第4版更新了大量的内容,全书共分为16章和6 个附录,内容涵盖MySQL架构和历史,基准测试和性能剖析,数据库软硬件性能优化,复制、备份和恢复,高可用与高可扩展性,以及云端的MySQL和MySQL相关工具等方面的内容。每一章都是相对独立的主题,读者可以有选择性地单独阅读。《高性能MySQL(第4版)》不但适合数据库管理员(DBA)阅读,也适合开发人员参考学习。不管是数据库新手还是专家,相信都能从本书有所收获。
|
關於作者: |
Silvia Botros是Twilio的高级首席工程师。在SendGrid工作期间,她帮助部署和维护了各种MySQL数据存储,这些数据存储支持邮件管道和SendGrid提供的其他产品,并推动MySQL设计从开始到生产。 Jeremy Tinley是Etsy的高级职员工程师,拥有超过20年的MySQL经验。在他的职业生涯中,他管理了成千上万个MySQL实例,着眼于可用性、可靠性和运营效率。
宁海元,二十年数据领域从业者,曾带领淘宝DBA团队从Oracle转型MySQL,从零构建手机淘宝用户行为大数据平台,也是阿里云数据中台商业化早期探索者。2015年底联合创立袋鼠云,目前负责子公司易知微和云掣,聚焦数字孪生和可观测运维领域。
周振兴是数据库领域的资深专家,曾在阿里数据库团队供职12年,有丰富的MySQL性能优化、Troubleshooting经验,是阿里去IOE核心成员,是阿里核心系统从集中式到分布式架构的开创者,曾任阿里资深数据库技术专家(P9)、云数据库产品与运营总监,是阿里云明星产品PolarDB产品线负责人。
张新铭,云掣资深数据库专家,网络常用名俊达,曾任淘宝、支付宝DBA,全程参与淘宝核心业务系统底层存储系统改造,参与建设支付宝MySQL标准化运维体系。对于数据库体系结构和运作原理有深入的理解,擅长大数据量和高访问量OLTP数据库的设计和优化。
|
目錄:
|
序................................................................................. xxiii
前言............................................................................... xxv
本书第 4 版的致谢.............................................................. xxix
第 1 章 MySQL 架构............................................................ 1
MySQL 的逻辑架构 ...................................................................................................... 1
连接管理与安全性 ................................................................................................ 2
优化与执行............................................................................................................ 2
并发控制 ....................................................................................................................... 3
读写锁 ................................................................................................................... 3
锁的粒度 ............................................................................................................... 4
事务 .............................................................................................................................. 5
隔离级别 ............................................................................................................... 7
死锁 ....................................................................................................................... 8
事务日志 ............................................................................................................... 9
MySQL 中的事务 ................................................................................................ 10
多版本并发控制 .......................................................................................................... 12
复制 ............................................................................................................................ 13
数据文件结构 ............................................................................................................. 14
InnoDB 引擎 ............................................................................................................... 14
JSON 文档支持 ................................................................................................... 15
数据字典的变化 .................................................................................................. 16
原子 DDL ............................................................................................................ 16
小结 ............................................................................................................................ 16
第 2 章 可靠性工程世界中的监控..............................................17
可靠性工程对 DBA 团队的影响 ................................................................................. 18
定义服务水平目标 ...................................................................................................... 18
怎样才能让客户满意 ........................................................................................... 19
用什么来度量 ............................................................................................................. 20
定义 SLI 和 SLO ................................................................................................. 20
监控解决方案 ...................................................................................................... 21
监控可用性.......................................................................................................... 22
监控查询延迟 ...................................................................................................... 24
监控报错 ............................................................................................................. 24
主动监控 ............................................................................................................. 25
度量长期性能 ............................................................................................................. 31
了解业务节奏 ...................................................................................................... 31
有效地跟踪指标 .................................................................................................. 32
使用监控工具检查性能 ....................................................................................... 33
使用 SLO 来指导整体架构 .................................................................................. 34
小结 ............................................................................................................................ 34
第 3 章 Performance Schema........................................... 35
Performance Schema 介绍 ........................................................................................... 35
插桩元件 ............................................................................................................. 36
消费者表的组织 .................................................................................................. 37
资源消耗 ............................................................................................................. 39
局限性 ................................................................................................................. 39
sys Schema .......................................................................................................... 40
理解线程 ............................................................................................................. 40
配置 ............................................................................................................................ 41
启用或禁用 Performance Schema ........................................................................ 42
启用或禁用插桩 .................................................................................................. 42
启用或禁用消费者表 ........................................................................................... 43
优化特定对象的监控 ........................................................................................... 44
优化线程的监控 .................................................................................................. 45
调整 Performance Schema 的内存大小 ................................................................ 46
默认值 ................................................................................................................. 46
使用 Performance Schema ........................................................................................... 46
检查 SQL 语句 .................................................................................................... 46
检查读写性能 ...................................................................................................... 54
检查元数据锁 ...................................................................................................... 56
检查内存使用情况 .............................................................................................. 56
检查变量 ............................................................................................................. 59
检查最常见的错误 .............................................................................................. 62
检查 Performance Schema 自身 ........................................................................... 63
小结 ............................................................................................................................ 65
第 4 章 操作系统和硬件优化.................................................. 66
什么限制了 MySQL 的性能 ..................
|
內容試閱:
|
推荐序
随着互联网行业以及云计算产业的高速发展,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。
|
|