1. 缘起
前段时间,收到马听老师(刘遵庆)的消息,让我帮忙推荐一下他和另外两作者(凡新雷、邹勇)合著的新书《MySQL DBA 精英实战课》。
因为写公众号的缘故,知道写文章的不易,对于那些认真写书的作者,在写作过程会面临多少艰辛也就有了一些感同身受。
对马听老师和其他两位作者能把多年的工作经验总结成书分享给读者,也是十分佩服,于是,收到马听老师的消息之后,立马应承下来。
但是该怎么推荐?马听老师很体贴的给我发了一篇可以直接发文的链接,引用过来、设定好推送时间就可以很方便的发出去了。
经过一小段冷静期之后,我想既然要推荐,那我必须先自己阅读一遍,把我自己的阅读总结写下来,好给读者作个参考,于是就有了这篇文章现在呈现的样子。
接下来我们进入正题。
2. 读书总结
本书总共有 17 章
,325 页
,我从阅读的角度,把它分为 4 个部分:
基础知识(第 1 ~ 3 章) 原理介绍(第 4 ~ 6 章) 实战经验(第 7 ~ 15 章) 新版本的 MySQL 和新时代的 DBA(第 16 ~ 17 章)
读完本书之后,总体感受是这样的:
原理介绍
:内容深度有些不足,如果后面再版,能把这部分内容深度再拓展一下,让内容更立体更丰满,相信能带给读者更好的体验。实战经验
:本书的亮点,这部分内容丰富细致,涵盖广泛,通过这部分内容能够感受到 3 位作者的实战经验丰富。
接下来是对每章内容的简单总结:
第 1 章
,从 MySQL rpm 包的选择、下载、安装,到环境配置,开机启动都有介绍。最后还简单介绍了 MySQL 建表、增、删、改、查语句的使用。
第 2 章
,先介绍了几种用于查找的数据结构,再介绍了索引使用的 B+ 树结构。然后介绍了索引的几种类型,以及 2 个优化措施(ICP、MRR),最后是关于索引的使用建议。
第 3 章
,对 MySQL server 层的锁、InnoDB 层的各种锁进行了简单介绍,并用 SQL 演示了几种会出现死锁的场景。
第 4 章
,介绍了事务的 ACID 特性、实现原理,以及 MVCC 的实现原理。
第 5 章
,简单介绍了 MySQL 的整体结构,InnoDB 的整体结构,并进一步介绍了 InnoDB 的下面这些概念:
Buffer Pool Change Buffer Redo Log Buffer Double Write 自适应哈希索引(AHI) 各种表空间(系统表空间、通用表空间、独立表空间、Undo 表空间、临时表空间)
第 6 章
,这一章是 MySQL 和 InnoDB 的日志大全,介绍了各种日志以及它们的存储方式:
Binlog General Log Error Log Slow Log Redo Log Undo Log
第 7 章
,从 CPU、内容、磁盘等硬件的选择,MySQL 参数的调优,SQL 语句的各种优化,到分析慢查询的 3 种工具,全方位介绍了 MySQL 优化
这个主题。
这一章比较惊艳的是:还介绍了 RAID 这种比较古老,但是还有公司使用的技术。
也正是从这一章开始,3 位作者丰富的实战经验就开始显露出来了。
第 8 章
,俗话说:无规矩不成方圆。这一章从建表、部署和操作、SQL 这 3 个方面介绍了 MySQL 使用过程中应该遵守的各种规范。
规范这个东西,看起来是一条条死气沉沉的条条框框,但可以想象的是:它们都是 3 位作者踩了各种坑总结出来的血泪教训。
要想 MySQL 这把锄头挥舞的好,规范这东西少不了。
第 9 章
,MySQL 高可用离不开主从架构,这一章介绍的就是:主从复制的大事小情。
大到主从复制架构(普通的主从复制、基于 GTID 的主从复制),小到 MySQL 复制报错怎么处理。
第 10 章
,非常详细的介绍了 MySQL 的各种安全措施,完全超出了我的想象。
看完这章的感受是:MySQL 为了安全也是拼了,以前从来没想过 MySQL 这么严肃的一个基础软件,做出了和业务系统一样全面到让人眼花缭乱的安全策略,例如:密码过期时间、密码错误次数限制等等。
第 11 章
,介绍的 MySQL 备份工具,真是让我大开眼界(当然,有可能是我眼界太窄了 ^_^)。
MySQL 的备份竟然有这么多种类:
逻辑备份
:这种备份以前只知道 mysqldump,这是 MySQL 官方的单线程版本,书中对 mysqldump 介绍的非常详细,介绍了很多实用的参数。
万万没想到,第三方的大牛们还出了个多线程版本,可以更快的导入/导出数据,它们是一对孪生兄弟:mydumper:用于导出数据 myloader:用于导入数据 物理备份
:就在今年的前几个月,我还跟前同事信誓旦旦的说 InnoDB 不支持物理备份,我竟然不知道 XtraBackup 是干物理备份用的,啪啪打脸了。在线克隆
:这是备份的新花样,由 Clone Plugin 担任主角。
第 12 章
,介绍 MySQL 监控,不但介绍了要监控哪些系统变量、状态变量,还介绍了各种监控软件:
Zabbix Prometheus + Grafana PMM(Percona Monitoring and Management)
这一章特别印象深刻的是:不只是简单的介绍了上面 3 种监控软件,还以非常详细的界面截图介绍了这些软件的安装和使用步骤,简直堪称 MySQL 监控的保姆级教程。
第 13 章
,一口气非常详细的介绍了 3 种 MySQL 的高可用方案:
MHA Orchestrator InnoDB Cluster
看到这一章的时候,我已经不止一次在心里感叹:又涨知识了!
第 14 章
,简单介绍了分库分表的场景和原则,还介绍了多种分库分表的工具。
看到这一章,兴奋之情油然而生,因为分库分表工具里提到了我司产品 DBLE
,虽然只有那惊鸿一瞥,但也只需要那一瞥就够了。
第 15 章
,介绍了可以和 MySQL 打配合的一些工具以及配合使用的场景,这说明 MySQL 也不是万能的,还是需要有伙伴一起才能成就更大的事业,它们是:
Redis ClickHouse + ClickTail Percona Toolkit
Percona Toolkit 是个工具包,包含的好工具还真不少,以前我只知道一个用来以非阻塞模式更新表结构
的工具 pt-osc
,这一章一口气介绍了 Percona Toolkit 的 5 个工具,有种大饱眼福的感觉。
第 16 章
,以前在 MySQL数据库联盟
公众号里看到马听老师发过一些关于 MySQL 8.0 新特性的文章,这一章对 MySQL 8.0 的新特性来了个大集合,例如:SDI、online DDL、窗口函数、不可见索引等等。
第 17 章
,以前常听说云时代,运维、DBA 都要失业了,来看看 3 位作者对于云时代 DBA 工作变化的思考吧。
3. 购买链接
如需购买,可以查看各平台是否有活动。




