第一部分 MySQL5.5新特性篇 2
第1章 MySQL5.5介绍 2
1.1性能上的显著改变 2
1.1.1 MySQL5.5默认存储引擎的调整 2
1.1.2充分利用CPU多核的处理能力 7
1.1.3提高刷新脏页数量和合并插入数量,改善磁盘I/O处理能力 8
1.1.4增加自适应刷新脏页功能 9
1.1.5让InnoDB Buffer Pool缓冲池中的热数据存活更久 9
1.1.6 InnoDB的数据恢复时间加快 11
1.1.7 InnoDB同时支持多个BufferPool实例 15
1.1.8可关闭自适应哈希索引 17
1.1.9在InnoDB中可选择使用内存分配程序 18
1.1.10提高默认InnoDB线程并发数 21
1.1.11预读算法的变化 22
1.1.12首次在Linux上实现了异步I/O 23
1.1.13恢复组提交 24
1.1.14 InnoDB使用多个回滚段提升性能 26
1.1.15 改善清除程序进度 26
1.1.16添加删除缓冲和清除缓冲 27
1.1.17控制自旋锁Spin Lock轮训间隔 28
1.1.18快速创建、删除、更改索引 29
1.1.19 1nnoDB支持创建压缩数据页 30
1.1.20可动态关闭InnoDB更新元数据的统计功能 37
1.2安全性、稳定性的显著改变 38
1.2.1复制功能加强 38
1.2.2中继日志relay-log可自我修复 39
1.2.3开启InnoDB严格检查模式 39
1.3动态更改系统配置参数 39
1.3.1支持动态更改独立表空间 39
1.3.2支持动态更改InnoDB锁超时时间 40
1.4 InnoDB新参数汇总 40
1.5同步复制新参数汇总 48
1.6 SQL语句写法的改变 53
1.6.1 delete表连接语法改变 53
1.6.2 MySQL5.5存储过程支持limit变量 54
1.7 MySQL5.1升级为MySQL5.5 55
1.7.1采用MySQL_upgrade升级授权表方式升级 55
1.7.2直接安装MySQL5.5,采用数据导出/导入方式升级 59
1.8性能测试:MySQL5.5与MySQL5.1 60
第2章 半同步复制 62
2.1半同步复制简介 62
2.2半同步复制安装配置 63
2.3参数说明 63
2.4功能测试 64
2.4.1如何验证半同步复制是否正常工作 64
2.4.2半同步复制与异步复制的切换 65
2.5性能测试 68
2.6小结 70
第二部分 故障诊断与性能优化篇 72
第3章 故障诊断 72
3.1影响MySQL性能的因素 72
3.2系统性能评估标准 73
3.2.1影响Linux服务器性能的因素 73
3.2.2系统性能评估指标 74
3.2.3开源监控和评估工具介绍 76
3.3故障与处理 79
3.3.1连接数过多导致程序连接报错的原因 79
3.3.2记录子查询引起的宕机 84
3.3.3诊断事务量突高的原因 87
3.3.4谨慎设置binlog_format=MIXED 90
3.3.5未设置swap分区导致内存耗尽,主机死机 94
3.3.6 MySQL故障切换之事件调度器注意事项 95
3.3.7人工误删除InnoDB ibdata数据文件,如何恢复 97
3.3.8 update忘加where条件误操作恢复(模拟Oracle闪回功能) 99
3.3.9 delete忘加where条件误操作恢复(模拟Oracle闪回功能) 108
第4章 同步复制报错故障处理 112
4.1最常见的3种故障 112
4.1.1在master上删除一条记录时出现的故障 112
4.1.2主键重复 114
4.1.3在master上更新一条记录,而slave上却找不到 115
4.2特殊情况:slave的中继日志relay-log损坏 116
4.3人为失误 118
4.4避免在master上执行大事务 119
4.5 slave_exec_mode参数可自动处理同步复制错误 120
4.6如何验证主从数据一致 121
4.7 binlog_ ignore_db引起的同步复制故障 123
4.8 MySQL5.5.19/20同步一个Bug 124
4.9恢复slave从机上的某几张表的简要方法 126
4.10如何干净地清除slave同步信息 127
第5章 性能调优 129
5.1表设计 129
5.2字段类型的选取 133
5.2.1数值类型 134
5.2.2字符类型 139
5.2.3时间类型 141
5.2.4小技巧:快速修改表结构 148
5.2.5 pt-online-schema-change在线更改表结构 152
5.2.6 MySQL5.6在线DDL更改表测试 158
5.3采用合适的锁机制 161
5.3.1表锁的演示 161
5.3.2行锁的演示 164
5.3.3 1nnoDB引擎与MyISAM引擎的性能对比 166
5.4选择合适的事务隔离级别 168
5.4.1事务的概念 168
5.4.2事务的实现 169
5.4.3事务隔离级别介绍 171
5.5 SQL优化与合理利用索引 177
5.5.1如何定位执行很慢的SQL语句 177
5.5.2 SQL优化案例分析 178
5.5.3合理使用索引 188
5.6 my.cnf配置文件调优 198
5.6.1 per_thread_buffers优化 198
5.6.2 global buffers优化 200
5.6.3 Query Cache在不同环境下的使用 201
5.6.4 tuning-primer.sh性能调试工具的使用 205
5.6.5 72 GB内存的my.cnf配置文件 208
5.6.6谨慎使用分区表功能 211
5.7 MySQL5.6同步复制新特性详解 213
第6章 备份与恢复 223
6.1冷备份 224
6.2逻辑备份 224
6.2.1 mysqldump增加了一个重要参数 225
6.2.2取代mysqldump的新工具 mydumper 226
6.2.3逻辑备份全量、增量备份脚本 229
6.3热备份与恢复 230
第三部分 高可用集群管理篇 236
第7章 目前流行的4种高可用架构 236
7.1采用MySQL自带的 Replication架构 237
7.1.1 Keepalived+MySQL Replication架构的搭建演示 237
7.1.2 MMM+MySQL Replication 架构的搭建演示 241
7.2 Heartbeat+DRBD+MySQL 架构的搭建演示 249
7.3红帽RHCS共享存储架构的搭建演示 254
7.3.1安装过程 257
7.3.2红帽RHCS集群的维护 265
7.4 MySQL高可用集群HA解决方案的测试评估 267
第8章 批量管理服务器 270
8.1开源工具pssh的使用方法 270
8.2自己编写的SSH服务器批量管理工具 273
第四部分 监控篇 278
第9章 性能监控 278
第10章 服务监控 283
10.1 Nagios搭建与维护 283
10.2 MySQL数据库的监控脚本 288
第五部分 项目案例 292
第11章 项目案例讲解 292
11.1数据碎片整理方案 292
11.2用户信息表水平拆表方案 296
11.3阿里巴巴中间件Cobar 水平拆表方案 299