三位拥有多年DBA实战经验的作者的用心总结,从增删查改、索引、锁、事务、体系结构、日志文件等基础知识,到优化、主从复制、安全、备份、分库分表、周边工具、新特性、主流高可用方案、云时代工作等高级实战话题,全面、详细地讲解MySQL核心技术。大部分知识带有对应实验,方便读者理解。
售 价:¥
纸质售价:¥86.10购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
前折页
内容简介
前言
第1章 MySQL的基础知识
1.1 数据库的安装全过程
1.1.1 平台的选择
1.1.2 安装包的选择
1.1.3 系统环境的配置
1.1.4 数据库的安装
1.2 数据库的简单使用
1.2.1 连接
1.2.2 数据库的创建和使用
1.2.3 增、删、改、查
1.3 总结
第2章 MySQL的索引
2.1 索引算法
2.1.1 顺序查找
2.1.2 二分查找
2.1.3 二叉查找树
2.1.4 平衡二叉树
2.1.5 B树
2.1.6 B+树
2.1.7 B+树索引
2.2 MySQL中的索引类型
2.2.1 聚集索引
2.2.2 辅助索引
2.2.3 唯一索引
2.2.4 联合索引
2.3 MySQL中的索引优化
2.3.1 ICP
2.3.2 MRR
2.4 关于索引的建议
2.5 总结
第3章 MySQL的锁
3.1 共享锁和排他锁
3.2 意向锁
3.3 记录锁、间隙锁、插入意向锁和临键锁
3.4 MDL
3.5 死锁
3.6 总结
第4章 MySQL的事务
4.1 事务的特性
4.2 事务的实现
4.2.1 原子性的实现
4.2.2 一致性的实现
4.2.3 隔离性的实现
4.3 MVCC实现
4.3.1 什么是MVCC
4.3.2 实现的原理
4.4 普通读和当前读
4.4.1 普通读
4.4.2 当前读
4.4.3 小结
4.5 总结
第5章 MySQL的体系结构
5.1 MySQL的结构
5.2 存储引擎
5.3 InnoDB的体系结构
5.3.1 内存结构
5.3.2 磁盘结构
5.4 总结
第6章 MySQL常用的日志文件
6.1 Binlog
6.1.1 Binlog基础
6.1.2 开启和关闭Binlog
6.1.3 Binlog的作用
6.1.4 Binlog记录的格式
6.1.5 Binlog的解析
6.1.6 MySQL 8.0 Binlog加密
6.1.7 Binlog的清除
6.1.8 Binlog的落盘
6.1.9 Binlog相关的参数
6.2 General Log
6.2.1 General Log的开启
6.2.2 General Log的用法
6.3 Slow Log
6.3.1 Slow Log的开启
6.3.2 Slow Log的特殊设置
6.3.3 Slow Log的内容解析
6.3.4 MySQL 8.0慢查询额外信息的输出
6.4 Error Log
6.4.1 Error Log的配置
6.4.2 Error Log的切割
6.4.3 借助Error Log定位的问题
6.5 Redo Log
6.5.1 Redo Log初探
6.5.2 Redo Log的落盘
6.5.3 Redo Log的数量及大小修改
6.5.4 CheckPoint
6.5.5 LSN
6.5.6 MySQL 8.0中的Redo Log归档
6.5.7 MySQL 8.0中的Redo Log禁用
6.6 Undo Log
6.6.1 初识Undo Log
6.6.2 Undo Log的Purge
6.6.3 两种Undo Log
6.6.4 Undo Log的记录格式
6.6.5 回滚时刻
6.6.6 Undo Log的相关配置
6.7 总结
6.7.1 Binlog和Redo Log的区别
6.7.2 Undo Log和Redo Log的区别
第7章 MySQL的优化
7.1 硬件优化
7.1.1 硬件的选择
7.1.2 RAID的选择
7.2 操作系统的优化
7.2.1 文件系统的选择
7.2.2 系统参数的选择
7.2.3 MySQL多实例资源隔离优化
7.3 参数调优
7.3.1 参数的加载顺序
7.3.2 常用参数的调优
7.4 慢查询分析
7.4.1 Explain
7.4.2 Performance Schema分析
7.4.3 Trace追踪器
7.5 SQL语句优化
7.5.1 分页查询优化
7.5.2 not in优化
7.5.3 order by优化
7.5.4 group by优化
7.5.5 索引hint优化
7.6 总结
第8章 MySQL的规范
8.1 建表的规范
8.2 部署和操作的规范
8.3 SQL的规范
8.4 总结
第9章 MySQL的主从复制
9.1 主从复制的搭建
9.2 GTID复制
9.2.1 GTID主从复制的配置
9.2.2 GTID的相关知识
9.2.3 GTID的自动定位
9.2.4 使用GTID复制模式的限制
9.3 MySQL复制报错的处理
9.3.1 主从复制crash-safe
9.3.2 跳过GTID模式下的复制中断错误
9.4 MySQL半同步复制
9.4.1 MySQL半同步复制的注意事项
9.4.2 MySQL半同步复制中的无损复制
9.4.3 无损复制的配置和参数
9.4.4 无损复制的改进
9.5 MySQL并行复制
9.5.1 MySQL并行复制的原理和演进
9.5.2 MySQL并行复制的配置
9.6 总结
第10章 MySQL的安全
10.1 安全指南
10.2 访问控制
10.3 预留账户
10.4 角色管理
10.5 密码管理
10.5.1 密码过期
10.5.2 密码重用
10.5.3 密码验证
10.5.4 双密码支持
10.5.5 随机密码
10.5.6 密码试错
10.6 账户资源限制
10.7 加密连接
10.8 审计
10.9 总结
第11章 MySQL的备份
11.1 物理备份和逻辑备份
11.2 mysqldump
11.2.1 备份用户的权限
11.2.2 备份举例及参数解释
11.2.3 数据恢复
11.3 mydumper
11.3.1 mydumper的安装
11.3.2 使用mydumper备份数据
11.3.3 使用myloader进行数据恢复
11.4 XtraBackup
11.4.1 XtraBackup的安装
11.4.2 XtraBackup的工作流程
11.4.3 XtraBackup的用法举例
11.5 Clone Plugin
11.5.1 CIone PIugin的安装
11.5.2 CIone PIugin的用法举例
11.6 总结
第12章 MySQL的监控
12.1 常见的监控项
12.1.1 系统相关
12.1.2 状态相关
12.1.3 锁相关
12.1.4 连接相关
12.1.5 复制相关
12.1.6 参数相关
12.1.7 业务相关
12.2 使用Zabbix监控MySQL
12.2.1 架构图
12.2.2 实验环境
12.2.3 安装Zabbix Server
12.2.4 配置Zabbix数据库
12.2.5 编辑配置文件
12.2.6 启动Zabbix Server
12.2.7 Zabbix Web界面初始化
12.2.8 安装Zabbix Agent
12.2.9 安装Percona插件
12.2.10 在Agent上创建Zabbix监控用户
12.2.11 修改配置文件
12.2.12 测试监控
12.2.13 导入Percona模板
12.2.14 Zabbix Web增加主机配置
12.2.15 查看监控数据
12.3 使用Prometheus监控MySQL
12.3.1 架构图
12.3.2 实验环境
12.3.3 部署Prometheus
12.3.4 部署node_exporter组件
12.3.5 部署mysqld_exporter组件
12.3.6 配置Prometheus获取监控数据
12.3.7 部署Grafana
12.3.8 为Grafana配置Prometheus数据源
12.3.9 使用Grafana展示Linux的监控数据
12.3.10 使用Grafana展示MySQL的监控数据
12.4 使用PMM监控MySQL
12.4.1 架构图
12.4.2 实验环境
12.4.3 安装并启动Docker
12.4.4 安装PMM Server
12.4.5 安装PMM Client
12.4.6 PMM Client连接PMM Server
12.4.7 配置MySQL监控
12.4.8 打开监控页面
12.5 总结
第13章 MySQL的高可用
13.1 MHA
13.1.1 架构体系
13.1.2 MHA工具包
13.1.3 部署和配置MHA
13.1.4 原理
13.1.5 小结
13.2 Orchestrator
13.2.1 主要功能
13.2.2 优势
13.2.3 高可用
13.2.4 执行计划
13.2.5 集群重塑
13.2.6 部署和配置Orchestrator
13.2.7 参数配置
13.2.8 Hook介绍
13.2.9 集群的使用
13.2.10 小结
13.3 InnoDB Cluster
13.3.1 MGR初探
13.3.2 MGR与传统复制的区别
13.3.3 部署InnoDB Cluster
13.3.4 InnoDB Cluster的常用操作
13.3.5 MGR的原理
13.3.6 MGR的一致性保证
13.4 总结
第14章 MySQL的分库分表
14.1 分库分表的原则
14.2 分库分表的场景
14.3 拆分模式
14.3.1 垂直拆分
14.3.2 水平拆分
14.4 分库分表的工具
14.5 分库分表后面临的问题
14.5.1 事务支持问题
14.5.2 跨库查询问题
14.5.3 中间件高可用问题
14.6 总结
第15章 MySQL的周边工具
15.1 Redis
15.1.1 MySQL与Redis配合完成秒杀场景
15.1.2 如何保证Redis和MySQL数据一致
15.2 ClickHouse和ClickTail
15.3 Percona Toolkit
15.3.1 pt-osc
15.3.2 pt-query-digest
15.3.3 pt-kill
15.3.4 pt-table-checksum
15.3.5 pt-table-sync
15.4 总结
第16章 MySQL 8.0的新特性
16.1 事务性数据字典
16.1.1 MySQL 8.0之前版本的数据字典
16.1.2 MySQL 8.0之前版本的数据字典存在的问题
16.1.3 MySQL 8.0的数据字典
16.1.4 序列化字典信息
16.1.5 MySQL 8.0的数据字典的优势
16.2 快速加列
16.2.1 快速加列功能的使用和限制
16.2.2 快速加列的原理
16.2.3 快速加列的过程
16.3 原子DDL
16.3.1 原子DDL的使用范围和限制
16.3.2 原子DDL的特性和操作
16.3.3 原子DDL的原理
16.3.4 原子DDL的调试
16.4 资源组
16.4.1 资源组系统和权限准备
16.4.2 查看资源组信息
16.4.3 使用资源组
16.5 不可见索引
16.6 窗口函数
16.6.1 窗口函数的特性
16.6.2 窗口函数的使用
16.7 持久化全局变量
16.8 其他新特性
16.9 总结
第17章 云时代DBA工作的变化
17.1 3种类型的云
17.2 云应用的分类
17.2.1 SaaS
17.2.2 IaaS
17.2.3 PaaS
17.2.4 DBaaS
17.3 RDS
17.4 云原生数据库
17.5 上公有云的好处
17.6 上公有云的缺点
17.7 数据库上公有云前的注意事项
17.8 传统DBA的工作
17.9 上云后DBA工作的变化
17.9.1 关注点
17.9.2 监控
17.9.3 备份
17.9.4 迁移
17.9.5 云数据库的使用规范
17.9.6 云产品文档
17.9.7 命令行工具
17.9.8 API/SDK工具
17.9.9 成本控制
17.10 云时代DBA的发展方向
17.11 总结
反侵权盗版声明
后折页
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜