第1章 基础 1
1.1 语法错误 1
1.2 SELECT返回错误结果 5
1.3 当错误可能由之前的更新引起时 10
1.4 获取查询信息 15
1.5 追踪数据中的错误 18
1.6 慢查询 23
1.6.1 通过EXPLAIN的信息调优查询 23
1.6.2 表调优和索引 29
1.6.3 何时停止调优 33
1.6.4 配置选项的影响 33
1.6.5 修改数据的查询 35
1.6.6 没有高招 37
1.7 当服务器响应的时候 37
1.8 特定于存储引擎的问题及解决方案 42
1.8.1 MyISAM损坏 43
1.8.2 InnoDB数据损坏 45
1.9 许可问题 47
第2章 你不孤单:并发问题 50
2.1 锁和事务 50
2.2 锁 51
2.2.1 表锁 52
2.2.2 行锁 54
2.3 事务 59
2.3.1 隐藏查询 60
2.3.2 死锁 65
2.3.3 隐式提交 68
2.4 元数据锁 69
2.5 并发如何影响性能 72
2.5.1 为并发问题监控InnoDB事务 73
2.5.2 为并发问题监控其他资源 73
2.6 其他锁问题 74
2.7 复制和并发 82
2.7.1 基于语句的复制问题 82
2.7.2 混合事务和事务表 86
2.7.3 从服务器上的问题 87
2.8 高效地使用MySQL问题排查工具 89
2.8.1 SHOW PROCESSLIST和INFORMATION_SCHEMA.PROCESSLIST表 89
2.8.2 SHOW ENGINE INNODB STATUS和InnoDB监控器 91
2.8.3 INFORMATION_SCHEMA中的表 93
2.8.4 PERFORMANCE_SCHEMA中的表 94
2.8.5 日志文件 97
第3章 配置选项对服务器的影响 100
3.1 服务器选项 101
3.2 可更改服务器运行方式的变量 104
3.3 有关硬件资源限制的选项 105
3.4 使用--no-defaults选项 106
3.5 性能选项 107
3.6 欲速则不达 107
3.7 SET语句 108
3.8 如何检查变更是否存在一些影响 108
3.9 变量介绍 109
3.9.1 影响服务器与客户端行为的选项 110
3.9.2 与性能相关的选项 124
3.9.3 计算选项的安全值 133
第4章 MySQL环境 138
4.1 物理硬件限制 138
4.1.1 内存 138
4.1.2 处理器与内核 139
4.1.3 磁盘I/O 140
4.1.4 网络带宽 141
4.1.5 延迟效应的例子 142
4.2 操作系统限制 142
4.3 其他软件影响 144
第5章 复制故障诊断 145
5.1 查看从服务器状态 146
5.2 与I/O线程有关的复制错误 148
5.3 与SQL线程有关的问题 155
5.3.1 当主从服务器上数据不同的时候 156
5.3.2 从服务器上的循环复制以及复制写入 157
5.3.3 不完整或被改变的SQL语句 158
5.3.4 主从服务器上出现的不同错误 159
5.3.5 配置 159
5.3.6 当从服务器远远落后主服务器时 159
第6章 问题排查技术与工具 161
6.1 查询 161
6.1.1 慢查询日志 162
6.1.2 可定制的工具 163
6.1.3 MySQL命令行接口 165
6.2 环境的影响 169
6.3 沙箱 169
6.4 错误与日志 173
6.4.1 再论错误信息 173
6.4.2 崩溃 173
6.5 收集信息的工具 177
6.5.1 Information Schema 177
6.5.2 InnoDB信息概要表 178
6.5.3 InnoDB监控器 180
6.5.4 Performance Schema 187
6.5.5 Show [GLOBAL] STATUS 190
6.6 本地化问题(最小化测试用例) 191
6.7 故障排除的一般步骤 192
6.8 测试方法 195
6.8.1 在新版本中尝试查询 195
6.8.2 检查已知的bug 195
6.8.3 变通方法 196
6.9 专用的测试工具 198
6.9.1 基准工具 198
6.9.2 Gypsy 201
6.9.3 MySQL测试框架 202
6.10 维护工具 204
第7章 最佳实践 207
7.1 备份 207
7.1.1 计划备份 208
7.1.2 备份类型 208
7.1.3 工具 209
7.2 收集需要的信息 210
7.3 测试 211
7.4 预防 212
7.4.1 权限 212
7.4.2 环境 212
7.5 三思而后行 213
附录 信息资源 214
· · · · · · (
收起)
评分
☆☆☆☆☆
DBA王学敏推荐。书中使用的例子介绍对常见错误的排查逻辑,很到位也很精细。作为一本类工具书,是可以多读的,受益匪浅。
评分
☆☆☆☆☆
干货不多,排版还可以,读起来蛮轻松的
评分
☆☆☆☆☆
DBA王学敏推荐。书中使用的例子介绍对常见错误的排查逻辑,很到位也很精细。作为一本类工具书,是可以多读的,受益匪浅。
评分
☆☆☆☆☆
书本不厚,内容比较实,如果能更细的话绝对是本经典
评分
☆☆☆☆☆
书本不厚,内容比较实,如果能更细的话绝对是本经典
评分
☆☆☆☆☆
运维和开发的一大区别是运维比较吃经验--看起来用的知识不怎么高深,但假如第一次碰到会花很多时间碰壁找解决途径,而这期间可能公司已经损失了很多money~ 这本书是MySQL为数不多以案例贯穿始末的好书,作为一个实际工作经验只有1年的DBA,我受益良多~
评分
☆☆☆☆☆
运维和开发的一大区别是运维比较吃经验--看起来用的知识不怎么高深,但假如第一次碰到会花很多时间碰壁找解决途径,而这期间可能公司已经损失了很多money~ 这本书是MySQL为数不多以案例贯穿始末的好书,作为一个实际工作经验只有1年的DBA,我受益良多~
评分
☆☆☆☆☆
运维和开发的一大区别是运维比较吃经验--看起来用的知识不怎么高深,但假如第一次碰到会花很多时间碰壁找解决途径,而这期间可能公司已经损失了很多money~ 这本书是MySQL为数不多以案例贯穿始末的好书,作为一个实际工作经验只有1年的DBA,我受益良多~
评分
☆☆☆☆☆
我认为对一款数据库的学习,主要在3大方面,1、体系结构的理解。2、工具的使用。3、思路的整合。这本书介绍了很多mysql的工具。如果一个刚入行的mysql dba,接触了丰富的理论知识,但却没有运用知识的途径,那这本书就会是一个很好的选择。
评分
☆☆☆☆☆
我认为对一款数据库的学习,主要在3大方面,1、体系结构的理解。2、工具的使用。3、思路的整合。这本书介绍了很多mysql的工具。如果一个刚入行的mysql dba,接触了丰富的理论知识,但却没有运用知识的途径,那这本书就会是一个很好的选择。