本书既包括 MySQL 比较重要的基础内容,如安装、索引、锁、事务、体系结构、主从复制(GTID 复制、半同步复制、并行复制等)等,也包括 MySQL 的优化(从硬件、操作系统、参数、SQL 语句等方面)、规范、安全、备份、监控、高可用(MHA、Orchestrator 和 MGR)、分库分表、周边工具等实战内容。另外,本书增加了一些比较新的内容,如 MySQL 8.0 的新特性、云时代 DBA 工作的变化等。
本书可作为 MySQL 初学者、DBA、开发工程师、运维工程师、架构师等的参考资料。
基于流行的MySQL新版本
从优化、周边工具、新特性、主流高可用方案,到云时代工作,全方位实战讲解
刘遵庆:网名“马听”,拥有多年DBA工作经验,写作了大量MySQL专题文章,是公众号“MySQL数据库联盟”运营人。马听老师的专栏《一线数据库工程师带你深入理解 MySQL》全网销量3600余份,获得业内一致好评,帮助大量求职者掌握技能,通过面试。
凡新雷:拥有多年一线互联网公司MySQL数据库运维管理经验,擅长MySQL数据库调优和架构设计。
邹勇:拥有多年一线数据库运维经验,曾参与多家公司的数据库高可用体系建设,擅长MySQL、Redis等数据库运维工作。
前 言
写作背景
与其他数据库相比,MySQL 具有很多优势,如开源、支持多种语言、性能好、安全等。这也是这些年 MySQL 一直广受欢迎的原因。
因为 MySQL 一直受到各大互联网公司的青睐,所以这些公司的开发人员、运维人员、架构师、DBA 等都需要掌握 MySQL 知识。
在此背景下,作者总结了以往的实战经验和学习笔记,帮助广大 MySQL 爱好者掌握 MySQL 的重要知识点,同时提升自身的业务能力。
本书特点
本书由 3 位具有 6 年以上工作经验的 DBA 共同编写,从入门到深入,分享了 3 位作者多年的实战经验。
本书包含 MySQL 基础、优化和实战管理等内容,不会出现大段的抽象理论,而是通过实战来帮助读者理解 MySQL 的知识点。
本书结构
第 1 章:主要讲解 MySQL 的安装和使用。
第 2 章:主要讲解 MySQL 的索引,包括索引算法、MySQL 中的索引类型、MySQL中的索引优化、关于索引的建议等。
第 3 章:主要讲解 MySQL 的锁,包括共享锁、排他锁、意向锁、记录锁、间隙锁、插入意向锁、临键锁、MDL 和死锁等。
第 4 章:主要讲解 MySQL 的事务,包括事务的特性、事务的实现、MVCC 实现、普通读和当前读等。
第 5 章:主要讲解 MySQL 的体系结构,包括 MySQL 的结构、存储引擎、内存结构和磁盘结构等。
第 6 章:主要讲解 MySQL 常用的日志文件,包括 Binlog、General Log、Slow Log、Error Log、Redo Log 和 Undo Log 等。
第 7 章:主要讲解 MySQL 的优化,包括硬件优化、操作系统的优化、参数调优、慢查询分析和 SQL 语句优化等。
第 8 章:主要讲解 MySQL 的规范,包括建表的规范、部署和操作的规范,以及 SQL的规范等。
第 9 章:主要讲解 MySQL 的主从复制,包括主从复制的搭建、GTID 复制、MySQL复制报错的处理、MySQL 半同步复制和 MySQL 并行复制等,并且都附带实验过程,方便读者边学习边操作。
第 10 章:主要讲解 MySQL 的安全,包括访问控制、预留账户、密码管理、加密连接和审计等。
第 11 章:主要讲解 MySQL 的备份,包括 mysqldump、mydumper、XtraBackup 和Clone Plugin 等,并且都附带实验过程,根据实验步骤,读者基本能模拟常规的备份。
第 12 章:主要讲解 MySQL 的监控,包括常见的监控项、使用 Zabbix 监控 MySQL、使用 Prometheus 监控 MySQL 和使用 PMM 监控 MySQL,每种监控方案都有详细的部署过程,读者可自行选择一个方案并用于工作中。
第 13 章:主要讲解 MySQL 的高可用,包括 MHA、Orchestrator、MGR 等,其中MHA 是比较传统的高可用方案,Orchestrator 和 MGR 在未来几年可能会得到广泛应用,每个高可用方案都有详细的部署过程和常用的一些操作。
第 14 章:主要讲解 MySQL 的分库分表,包括分库分表的原则、分库分表的场景、拆分模式、分库分表的工具和分库分表后面临的问题,读者可以参考这些内容,判断自己的环境是否需要分库分表,如果需要进行分库分表,就需要确定选择哪种工具、注意什么问题。
第 15 章:主要讲解 MySQL 的周边工具,如 Redis、ClickHouse 和 ClickTail,以及Percona Toolkit 等。
第 16 章:主要讲解 MySQL 8.0 的新特性,包括事务性数据字典、快速加列、原子DDL、资源组、不可见索引、窗口函数、持久化全局变量和其他新特性等。
第 17 章:主要讲解云时代 DBA 工作的变化,包括 3 种类型的云、云应用的分类、RDS、云原生数据库、上公有云的好处和缺点、数据库上公有云前的注意事项、传统DBA 的工作和上云后 DBA 工作的变化、云时代 DBA 的发展方向等。