第1章 MySQL架构 1
1.1 MySQL的逻辑架构 1
1.2 并发控制 3
1.3 事务 4
1.4 多版本并发控制 10
1.5 MySQL的存储引擎 11
第2章 寻找瓶颈:基准测试与性能分析 25
2.1 为什么要进行基准测试 25
2.2 基准测试策略 26
2.3 基准测试工具 32
2.4 基准测试样例 34
2.5 性能分析(Profiling) 43
2.6 分析操作系统 60
第3章 架构优化和索引 63
3.1 选择优化的数据类型 63
3.2 索引基础知识 74
3.3 高性能索引策略 83
3.4 索引实例研究 102
3.5 索引和表维护 105
3.6 正则化和非正则化 108
3.7 加速ALTER TABLE 113
3.8 对存储引擎的说明 115
第4章 查询性能优化 118
4.1 基本原则:优化数据访问 118
4.2 重构查询的方式 122
4.3 查询执行基础知识 124
4.4 MySQL查询优化器的限制 139
4.5 优化特定类型的查询 146
4.6 查询优化提示 151
4.7 用户定义变量 154
第5章 MySQL高级特性 159
5.1 MySQL查询缓存 159
5.2 在MySQL中存储代码 168
5.3 游标 173
5.4 准备语句 174
5.5 用户自定义函数 177
5.6 视图 179
5.7 字符集和排序规则 182
5.8 全文搜索 188
5.9 外键约束 194
5.10 合并表和分区 194
5.11 分布式(XA)事务 201
第6章 优化服务器设置 203
6.1 配置基础知识 203
6.2 通用调优原则 207
6.3 MySQL I/O调优 214
6.4 MySQL并发调优 224
6.5 基于工作负载调优 226
6.6 每连接(Per-Connection)设置调优 231
第7章 操作系统和硬件优化 232
7.1 什么限制了MySQL的性能 232
7.2 如何为MySQL选择CPU 233
7.3 平衡内存和磁盘资源 235
7.4 为从服务器选择硬件 240
7.5 RAID性能优化 240
7.6 存储区域网络和网络附加存储 246
7.7 使用多个磁盘卷 247
7.8 网络配置 248
7.9 选择操作系统 250
7.10 选择文件系统 250
7.11 线程处理 252
7.12 交换 252
7.13 操作系统状态 254
第8章 复制 259
8.1 复制概述 259
8.2 创建复制 262
8.3 揭示复制的真相 268
8.4 复制拓扑 273
8.5 复制和容量规划 284
8.6 复制管理和维护 285
8.7 复制问题和解决方案 292
8.8 复制有多快 305
8.9 MySQL复制的未来 307
第9章 伸缩性与高可用性 308
9.1 术语 308
9.2 MySQL的伸缩性 310
9.3 负载平衡 328
9.4 高可用性 336
第10章 应用层面的优化 344
10.1 应用程序性能概述 344
10.2 Web服务器的议题 346
10.3 缓存 349
10.4 扩展MySQL 354
10.5 可替代的MySQL 354
第11章 备份与还原 356
11.1 概况 356
11.2 要权衡的事项 360
11.3 管理和备份二进制日志 367
11.4 数据备份 369
11.5 从备份中还原 377
11.6 备份和还原的速度 386
11.7 备份工具 387
11.8 脚本化备份 392
第12章 安全 395
12.1 术语 395
12.2 账号的基本知识 396
12.3 操作系统安全 411
12.4 网络安全 412
12.5 数据加密 418
12.6 在Chroot环境里使用MySQL 421
第13章 MySQL服务器的状态 423
13.1 系统变量 423
13.2 SHOW STATUS 423
13.3 SHOW INNODB STATUS 429
13.4 SHOW PROCESSLIST 440
13.5 SHOW MUTEX STATUS 441
13.6 复制的状态 442
13.7 INFORMATION_SCHEMA 442
第14章 用于高性能MySQL的工具 444
14.1 带界面的工具 444
14.2 监控工具 446
14.3 分析工具 453
14.4 MySQL的辅助工具 455
14.5 更多的信息来源 458
附录A 大文件传输 459
附录B 使用EXPLAIN 463
附录C 在MySQL里使用Sphinx 476
附录D 锁的调试 497
索引 505