基 础 篇
第1章 MYSQL初始化安装、简单安全加固 3
1.1 背景 3
1.2 初始化安装 3
1.2.1 下载二进制安装文件 3
1.2.2 创建MYSQL用户 3
1.2.3 创建程序、数据存放目录 4
1.2.4 解压缩二进制安装文件并设置目录权限 4
1.2.5 软链接程序路径,并设置MYSQL命令环境变量 5
1.2.6 配置MY.CNF文件参数 5
1.2.7 初始化MYSQL 6
1.2.8 启动MYSQL 7
1.3 简单安全加固 8
1.3.1 登录MYSQL 8
1.3.2 删除非ROOT或非LOCALHOST的用户并修改ROOT密码 9
1.3.3 删除TEST库,清理MYSQL.DB表 10
1.4 创建用户、库、表、数据 12
1.4.1 创建管理用户并授权 12
1.4.2 创建库、表、程序账号 13
1.4.3 插入数据 14
1.5 MYSQL参数模板 16
第2章 MYSQL常用的两种升级方法 21
2.1 背景 21
2.2 MYSQL 5.5.54的安装 21
2.3 升级MYSQL 5.5.54到MYSQL 5.6.35 21
2.3.1 使用MYSQL_UPGRADE直接升级数据字典库 21
2.3.2 使用MYSQLDUMP逻辑备份数据 30
2.4 升级注意事项 38
第3章 MYSQL体系结构 41
3.1 快速安装MYSQL 41
3.2 数据目录结构 43
3.3 MYSQL SERVER体系结构 46
3.4 MYSQL中的存储引擎 48
3.5 INNODB存储引擎体系结构 48
3.6 INNODB存储引擎后台线程 52
3.7 MYSQL前台线程 54
第4章 PERFORMANCE_SCHEMA初相识 56
4.1 什么是PERFORMANCE_SCHEMA 56
4.2 PERFORMANCE_SCHEMA使用快速入门 57
4.2.1 检查当前数据库版本是否支持 57
4.2.2 启用PERFORMANCE_SCHEMA 58
4.2.3 PERFORMANCE_SCHEMA表的分类 59
4.2.4 PERFORMANCE_SCHEMA简单配置与使用 62
第5章 PERFORMANCE_SCHEMA配置详解 66
5.1 编译时配置 66
5.2 启动时配置 67
5.2.1 启动选项 67
5.2.2 SYSTEM VARIABLES 69
5.3 运行时配置 71
5.3.1 PERFORMANCE_TIMERS表 71
5.3.2 SETUP_TIMERS表 72
5.3.3 SETUP_CONSUMERS表 73
5.3.4 SETUP_INSTRUMENTS表 76
5.3.5 SETUP_ACTORS表 82
5.3.6 SETUP_OBJECTS表 85
5.3.7 THREADS表 87
第6章 PERFORMANCE_SCHEMA应用示例荟萃 93
6.1 利用等待事件排查MYSQL性能问题 93
6.2 锁问题排查 97
6.2.1 找出谁持有全局读锁 97
6.2.2 找出谁持有MDL锁 100
6.2.3 找出谁持有表级锁 104
6.2.4 找出谁持有行级锁 107
6.3 查看最近的SQL语句执行信息 112
6.3.1 查看最近的TOP SQL语句 112
6.3.2 查看最近执行失败的SQL语句 114
6.4 查看SQL语句执行阶段和进度信息 117
6.4.1 查看SQL语句执行阶段信息 117
6.4.2 查看SQL语句执行进度信息 120
6.5 查看最近的事务执行信息 121
6.6 查看多线程复制报错详情 123
第7章 SYS系统库初相识 126
7.1 SYS系统库使用基础环境 126
7.2 SYS系统库初体验 127
7.3 SYS系统库的进度报告功能 129
第8章 SYS系统库配置表 132
8.1 SYS_CONFIG表 132
8.2 SYS_CONFIG_INSERT_SET_USER触发器 136
8.3 SYS_CONFIG_UPDATE_SET_USER触发器 136
第9章 SYS系统库应用示例荟萃 138
9.1 查看慢SQL语句慢在哪里 138
9.2 查看是否有事务锁等待 140
9.3 查看是否有MDL锁等待 141
9.4 查看INNODB缓冲池中的热点数据有哪些 143
9.5 查看冗余索引 144
9.6 查看未使用的索引 145
9.7 查询表的增、删、改、查数据量和I/O耗时统计信息 145
9.8 查看MYSQL磁盘文件产生的磁盘流量与读写比例 146
9.9 查看哪些语句使用了全表扫描 147
9.10 查看哪些语句使用了文件排序 148
9.11 查看哪些语句使用了临时表 149
第10章 INFORMATION_SCHEMA初相识 151
第11章 INFORMATION_SCHEMA应用示例荟萃 161
第12章 MYSQL系统库之权限系统表 177
第13章 MYSQL系统库之访问权限控制系统 184
第14章 MYSQL系统库之统计信息表 200
第15章 MYSQL系统库之复制信息表 206
第16章 MYSQL系统库之日志记录表 218
第17章 MYSQL系统库应用示例荟萃 228
第18章 复制技术的演进 245
第19章 事务概念基础 263
第20章 INNODB锁 280
第21章 SQL优化 299
第22章 MYSQL读写扩展 308
案 例 篇
第23章 性能测试指标和相关术语 317
第24章 历史问题诊断和现场故障分析 322
第25章 性能调优金字塔 326
第26章 SQL语句执行慢真假难辨 330
第27章 如何避免三天两头换硬盘、内存、主板 338
第28章 每隔45天的MYSQL性能低谷 342
第29章 MYSQL连接无法自动释放 359
第30章 查询MYSQL偶尔比较慢 363
第31章 MYSQL最多只允许214个连接 367
第32章 MYSQL挂起诊断思路 375
第33章 硬件和系统调优 378
第34章 并发删除数据造成死锁 387
第35章 删除不存在的数据造成死锁 391
第36章 插入意向锁死锁 394
第37章 分页查询优化 398
第38章 子查询优化——子查询转换为连接 400
第39章 子查询优化——使用DELETE删除数据 403
工 具 篇
第40章 硬件规格常用查看命令详解 407
第41章 系统负载常用查看命令详解 433
第42章 FIO存储性能压测 469
第43章 HAMMERDB在线事务处理测试 477
第44章 SYSBENCH数据库压测工具 493
第45章 MYSQLADMIN和INNOTOP工具详解 506
第46章 利用PROMETHEUS+GRAFANA 搭建炫酷的MYSQL监控平台 524
第47章 PERCONA TOOLKIT常用工具详解 538
第48章 MYSQL主流备份工具之MYSQLDUMP详解 598
第49章 MYSQL主流备份工具之XTRABACKUP详解 624
第50章 MYSQL主流备份工具之MYDUMPER详解 662
第51章 MYSQL主流闪回工具详解 675