前言
写作背景
与其他数据库相比,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的发展方向等。