| 作 者: | 施瓦茨扎伊采夫特卡琴科 |
| 出版社: | 电子工业出版社 |
| 丛编项: | |
| 版权说明: | 本书为公共版权或经版权方授权,请支持正版图书 |
| 标 签: | 数据库 计算机与互联网 |
| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
推荐序.......................................................................
xxiii
前言............................................................................xxv
第1
章
MySQL
架构与历史
............................................
MySQL
逻辑架构............................................................................................1
1.1.1
连接管理与安全性.................................................................................2
1.1.2
优化与执行............................................................................................3
并发控制.........................................................................................................3
1.2.1
读写锁...................................................................................................4
1.2.2
锁粒度...................................................................................................4
事务.................................................................................................................6
1.3.1
隔离级别...............................................................................................8
1.3.2
死锁.......................................................................................................9
1.3.3
事务日志.............................................................................................10
1.3.4
MySQL
中的事务................................................................................10
多版本并发控制
............................................................................................12
MySQL
的存储引擎......................................................................................13
1.5.1
InnoDB
存储引擎................................................................................16
1.5.2
MyISAM
存储引擎..............................................................................17
1.5.3
MySQL
内建的其他存储引擎..............................................................19
1.5.4
第三方存储引擎..................................................................................22
1.5.5
选择合适的引擎..................................................................................24
1.5.6
转换表的引擎......................................................................................27
MySQL
时间线(Timeline)..........................................................................29
MySQL
的开发模式......................................................................................32
总结...............................................................................................................33
第2
章
MySQL
基准测试
.............................................
为什么需要基准测试....................................................................................35
基准测试的策略
............................................................................................37
2.2.1
测试何种指标......................................................................................38
基准测试方法................................................................................................40
2.3.1
设计和规划基准测试...........................................................................41
2.3.2
基准测试应该运行多长时间................................................................42
2.3.3
获取系统性能和状态
...........................................................................43
2.3.4
获得准确的测试结果...........................................................................44
2.3.5
运行基准测试并分析结果...................................................................46
2.3.6
绘图的重要性......................................................................................47
基准测试工具................................................................................................49
2.4.1
集成式测试工具..................................................................................49
2.4.2
单组件式测试工具...............................................................................50
基准测试案例................................................................................................52
2.5.1
http_load
..............................................................................................53
2.5.2
MySQL
基准测试套件.........................................................................54
2.5.3
sysbench
..............................................................................................55
2.5.4
数据库测试套件中的dbt2
TPC-C
测试
...............................................60
2.5.5
Percona
的TPCC-MySQL
测试工具
....................................................63
总结
...............................................................................................................65
第3
章
服务器性能剖析...............................................
性能优化简介................................................................................................67
3.1.1
通过性能剖析进行优化.......................................................................69
3.1.2
理解性能剖析......................................................................................71
对应用程序进行性能剖析.............................................................................72
3.2.1
测量PHP
应用程序.............................................................................74
剖析MySQL
查询.........................................................................................77
3.3.1
剖析服务器负载..................................................................................77
3.3.2
剖析单条查询......................................................................................81
3.3.3
使用性能剖析......................................................................................87
诊断间歇性问题............................................................................................88
3.4.1
单条查询问题还是服务器问题............................................................89
3.4.2
捕获诊断数据
......................................................................................93
3.4.3
一个诊断案例......................................................................................98
其他剖析工具..............................................................................................
3.5.1
使用USER_STATISTICS
表
.............................................................
3.5.2
使用strace
.........................................................................................
总结
.............................................................................................................
第4
章
Schema
与数据类型优化
................................
选择优化的数据类型..................................................................................
4.1.1
整数类型...........................................................................................
4.1.2
实数类型...........................................................................................
4.1.3
字符串类型........................................................................................
4.1.4
日期和时间类型................................................................................
4.1.5
位数据类型........................................................................................
4.1.6
选择标识符(identifier)....................................................................
4.1.7
特殊类型数据....................................................................................
MySQL
schema
设计中的陷阱....................................................................
范式和反范式..............................................................................................
4.3.1
范式的优点和缺点.............................................................................
4.3.2
反范式的优点和缺点.........................................................................
4.3.3
混用范式化和反范式化.....................................................................
缓存表和汇总表..........................................................................................
4.4.1
物化视图...........................................................................................
4.4.2
计数器表...........................................................................................
加快ALTER
TABLE
操作的速度
...............................................................
4.5.1
只修改.frm
文件...............................................................................
4.5.2
快速创建MyISAM
索引
....................................................................
总结.............................................................................................................
第5
章
创建高性能的索引..........................................
索引基础.....................................................................................................
5.1.1
索引的类型........................................................................................
索引的优点.................................................................................................
高性能的索引策略......................................................................................
5.3.1
独立的列...........................................................................................
5.3.2
前缀索引和索引选择性
.....................................................................
5.3.3
多列索引...........................................................................................
5.3.4
选择合适的索引列顺序.....................................................................
5.3.5
聚簇索引...........................................................................................
5.3.6
覆盖索引...........................................................................................
5.3.7
使用索引扫描来做排序
.....................................................................
5.3.8
压缩(前缀压缩)索引.....................................................................
5.3.9
冗余和重复索引................................................................................
5.3.10
未使用的索引..................................................................................
5.3.11
索引和锁..........................................................................................
索引案例学习..............................................................................................
5.4.1
支持多种过滤条件.............................................................................
5.4.2
避免多个范围条件.............................................................................
5.4.3
优化排序...........................................................................................
维护索引和表..............................................................................................
5.5.1
找到并修复损坏的表.........................................................................
5.5.2
更新索引统计信息.............................................................................
5.5.3
减少索引和数据的碎片.....................................................................
总结
.............................................................................................................
第6
章
查询性能优化.................................................
为什么查询速度会慢..................................................................................
慢查询基础:优化数据访问.......................................................................
6.2.1
是否向数据库请求了不需要的数据..................................................
6.2.2
MySQL
是否在扫描额外的记录........................................................
重构查询的方式..........................................................................................
6.3.1
一个复杂查询还是多个简单查询......................................................
6.3.2
切分查询...........................................................................................
6.3.3
分解关联查询....................................................................................
查询执行的基础..........................................................................................
6.4.1
MySQL
客户端/
服务器通信协议
.....................................................
6.4.2
查询缓存...........................................................................................
6.4.3
查询优化处理....................................................................................
6.4.4
查询执行引擎....................................................................................
6.4.5
返回结果给客户端.............................................................................
MySQL
查询优化器的局限性.....................................................................
6.5.1
关联子查询........................................................................................
6.5.2
UNION
的限制..................................................................................
6.5.3
索引合并优化....................................................................................
6.5.4
等值传递...........................................................................................
6.5.5
并行执行
...........................................................................................
6.5.6
哈希关联...........................................................................................
6.5.7
松散索引扫描....................................................................................
6.5.8
最大值和最小值优化.........................................................................
6.5.9
在同一个表上查询和更新.................................................................
查询优化器的提示(hint)
...........................................................................
优化特定类型的查询..................................................................................
6.7.1
优化COUNT()
查询
..........................................................................
6.7.2
优化关联查询....................................................................................
6.7.3
优化子查询........................................................................................
6.7.4
优化GROUP
BY
和DISTINCT
........................................................
6.7.5
优化LIMIT
分页...............................................................................
6.7.6
优化SQL_CALC_FOUND_ROWS
...................................................
6.7.7
优化UNION
查询..............................................................................
6.7.8
静态查询分析....................................................................................
6.7.9
使用用户自定义变量.........................................................................
案例学习.....................................................................................................
6.8.1
使用MySQL
构建一个队列表
...........................................................
6.8.2
计算两点之间的距离.........................................................................
6.8.3
使用用户自定义函数.........................................................................
总结.............................................................................................................
第7
章
MySQL
高级特性
...........................................
分区表.........................................................................................................
7.1.1
分区表的原理....................................................................................
7.1.2
分区表的类型....................................................................................
7.1.3
如何使用分区表................................................................................
7.1.4
什么情况下会出问题.........................................................................
7.1.5
查询优化...........................................................................................
7.1.6
合并表...............................................................................................
视图.............................................................................................................
7.2.1
可更新视图........................................................................................
7.2.2
视图对性能的影响.............................................................................
7.2.3
视图的限制........................................................................................
外键约束.....................................................................................................
在MySQL
内部存储代码............................................................................
7.4.1
存储过程和函数................................................................................
7.4.2
触发器...............................................................................................
7.4.3
事件...................................................................................................
7.4.4
在存储程序中保留注释.....................................................................
游标.............................................................................................................
绑定变量.....................................................................................................
7.6.1
绑定变量的优化................................................................................
7.6.2
SQL
接口的绑定变量........................................................................
7.6.3
绑定变量的限制................................................................................
用户自定义函数..........................................................................................
插件.............................................................................................................
字符集和校对..............................................................................................
7.9.1
MySQL
如何使用字符集...................................................................
7.9.2
选择字符集和校对规则.....................................................................
7.9.3
字符集和校对规则如何影响查询......................................................
全文索引...................................................................................................
7.10.1
自然语言的全文索引.......................................................................
7.10.2
布尔全文索引..................................................................................
7.10.3
MySQL5.1
中全文索引的变化.........................................................
7.10.4
全文索引的限制和替代方案............................................................
7.10.5
全文索引的配置和优化...................................................................
分布式(XA)事务
...................................................................................
7.11.1
内部XA
事务..................................................................................
7.11.2
外部XA
事务
..................................................................................
查询缓存...................................................................................................
7.12.1
MySQL
如何判断缓存命中.............................................................
7.12.2
查询缓存如何使用内存
...................................................................
7.12.3
什么情况下查询缓存能发挥作用....................................................
7.12.4
如何配置和维护查询缓存...............................................................
7.12.5
InnoDB
和查询缓存.........................................................................
7.12.6
通用查询缓存优化...........................................................................
7.12.7
查询缓存的替代方案.......................................................................
总结...........................................................................................................
第8
章
优化服务器设置.............................................
MySQL
配置的工作原理.............................................................................
8.1.1
语法、作用域和动态性.....................................................................
8.1.2
设置变量的副作用.............................................................................
8.1.3
入门
...................................................................................................
8.1.4
通过基准测试迭代优化.....................................................................
什么不该做.................................................................................................
创建MySQL
配置文件...............................................................................
8.3.1
检查MySQL
服务器状态变量
...........................................................
配置内存使用..............................................................................................
8.4.1
MySQL
可以使用多少内存?............................................................
8.4.2
每个连接需要的内存.........................................................................
8.4.3
为操作系统保留内存.........................................................................
8.4.4
为缓存分配内存................................................................................
8.4.5
InnoDB
缓冲池(Buffer
Pool)
..........................................................
8.4.6
MyISAM
键缓存(Key
Caches)
........................................................
8.4.7
线程缓存...........................................................................................
8.4.8
表缓存(Table
Cache)
.......................................................................
8.4.9
InnoDB
数据字典(Data
Dictionary)................................................
配置MySQL
的I/O
行为............................................................................
8.5.1
InnoDB
I/O
配置................................................................................
8.5.2
MyISAM
的I/O
配置.........................................................................
配置MySQL
并发
.......................................................................................
8.6.1
InnoDB
并发配置..............................................................................
8.6.2
MyISAM
并发配置............................................................................
基于工作负载的配置..................................................................................
8.7.1
优化BLOB
和TEXT
的场景.............................................................
8.7.2
优化排序(Filesorts).........................................................................
完成基本配置..............................................................................................
安全和稳定的设置......................................................................................
高级InnoDB
设置.....................................................................................
总结...........................................................................................................
第9
章
操作系统和硬件优化.......................................
什么限制了MySQL
的性能........................................................................
如何为MySQL
选择CPU
...........................................................................
9.2.1
哪个更好:更快的CPU
还是更多的CPU.........................................
9.2.2
CPU
架构...........................................................................................
9.2.3
扩展到多个CPU
和核心
...................................................................
平衡内存和磁盘资源
..................................................................................
9.3.1
随机I/O
和顺序I/O
...........................................................................
9.3.2
缓存,读和写....................................................................................
9.3.3
工作集是什么....................................................................................
9.3.4
找到有效的内存/
磁盘比例
..............................................................
9.3.5
选择硬盘...........................................................................................
固态存储.....................................................................................................
9.4.1
闪存概述...........................................................................................
9.4.2
闪存技术...........................................................................................
9.4.3
闪存的基准测试................................................................................
9.4.4
固态硬盘驱动器(SSD