| 价格 | ¥89.00 |
| 发货 | 广东东莞市 |
| 数量 | -+ |
| 库存 | 100本 |
本书是数据库查询优化领域的里程碑之作,由Oracle公司MySQL开发团队、专家撰写,作者有10余年数据库内核和查询优化器研究经验。数据库领域泰斗王珊教授亲自作序,PostgreSQL中国社区和中国用户会发起人以及来自Oracle、新浪、网易、华为等企业的数位数据库专家联袂。从原理角度深度解读和展示数据库查询优化器的技术细节和全貌;从源码实现角度深入分析MySQL和PostgreSQL两大主流开源数据库查询优化器的实现原理;从工程实践的角度对比了两大数据库的查询优化器的功能异同和实现异同。它是所有数据开发工程师、内核工程师、DBA以及其他数据库相关工作人员值得反复研读的一本书。
全书一共19章,分为四个部分:第一篇(第1~4章)对数据库查询优化技术的范围、逻辑查询优化、物理查询优化,以及查询优化器与其他模块的关系做了细致、深入的讲解;第二篇(第5~10章)先从源码角度对PostgreSQL查询优化器的架构、层次、设计思想、相关数据结构和实现原理进行了深入、系统的分析,然后从功能角度对PostgreSQL的逻辑查询优化、物理查询优化、查询优化器的关键算法,以及PostgreSQL查询优化器与其他模块的关系做了深入的讲解;第三篇(第11~16章)先从源码角度对MySQL查询优化器的架构、层次、设计思想、相关数据结构和实现原理进行了深入、系统的分析,然后从功能角度对MySQL的逻辑查询优化、物理查询优化、查询优化器的关键算法,以及MySQL查询优化器与其他模块的关系做了深入的讲解;第四篇(第17~19章)对PostgreSQL与MySQL的逻辑查询优化技术、物理查询优化技术、设计思想和编码规范等各方面进行了深度的比较。
目 录
序一
序二
前 言
第一篇 查询优化技术
第1章 数据管理系统的查询优化 2
1.1 数据库调优 3
1.2 查询优化技术 5
1.2.1 查询重用 5
1.2.2 查询重写规则 6
1.2.3 查询算法优化 6
1.2.4 并行查询优化 8
1.2.5 分布式查询优化 9
1.2.6 其他优化 9
1.3 本章小结 9
第2章 逻辑查询优化 10
2.1 查询优化技术的理论基础 10
2.1.1 关系代数 11
2.1.2 关系代数等价变换规则对优化的指导意义 13
2.2 查询重写规则 17
2.2.1 子查询的优化 18
2.2.2 视图重写 28
2.2.3 等价谓词重写 29
2.2.4 条件化简 32
2.2.5 外连接消除 33
2.2.6 嵌套连接消除 37
2.2.7 连接消除 38
2.2.8 语义优化 40
2.2.9 针对非SPJ的优化 41
2.3 启发式规则在逻辑优化阶段的应用 42
2.4 本章小结 43
第3章 物理查询优化 44
3.1 查询代价估算 44
3.1.1 代价模型 44
3.1.2 选择率计算的常用方法 45
3.2 单表扫描算法 45
3.2.1 常用的单表扫描算法 45
3.2.2 单表扫描代价计算 47
3.3 索引 47
3.3.1 如何利用索引 47
3.3.2 索引列的位置对使用索引的影响 50
3.3.3 联合索引对索引使用的影响 56
3.3.4 多个索引对索引使用的影响 57
3.4 两表连接算法 59
3.4.1 基本的两表连接算法 59
3.4.2 进一步认识两表连接算法 61
3.4.3 连接操作代价计算 61
3.5 多表连接算法 62
3.5.1 多表连接顺序 62
3.5.2 常用的多表连接算法 63
3.5.3 多表连接算法的比较 68
3.6 本章小结 68
第4章 查询优化器与其他模块的关系 70
4.1 查询优化器整体介绍 70
4.2 查询优化器与其他模块的关系 73
4.3 本章小结 74
第二篇 PostgreSQL查询优化器原理解析
第5章 PostgreSQL查询优化器概述 76
5.1 PostgreSQL查询执行过程 76
5.2 PostgreSQL查询优化器的架构和设计思想 78
5.2.1 PostgreSQL查询优化器架构 79
5.2.2 PostgreSQL查询优化器的层次 81
5.2.3 PostgreSQL查询优化器设计思想 81
5.3 主要概念 81
5.4 代码层次结构 85
5.5 本章小结 86
第6章 PostgreSQL查询优化器相关数据结构 88
6.1 主要数据结构 88
6.1.1 基本数据结构 88
6.1.2 查询树 91
6.1.3 各种对象的结构 95
6.1.4 连接操作相关的结构 99
6.1.5 查询执行计划相关的结构 104
6.2 各个结构之间的关系 108
6.3 各个阶段间和主要结构体间的关系 109
6.4 本章小结 110
第7章 PostgreSQL查询优化器实现原理解析 111
7.1 查询优化整体流程 111
7.2 查询优化器实现原理解析 115
7.2.1 planner——主入口函数 115
7.2.2 standard_planner——标准的查询优化器函数 116
7.2.3 subquery_planner——生成(子)查询执行计划函数 117
7.2.4 grouping_planner——生成查询执行计划并对非SPJ优化 139
7.2.5 build_minmax_path——聚集函数MIN/MAX的优化函数 141
7.2.6 query_planner——生成的查询路径函数 142
7.2.7 make_one_rel——构造多表连接路径并选出路径函数 148
7.2.8 make_rel_from_joinlist——生成多表连接路径函数 153
7.2.9 optimize_minmax_aggregates——聚集操作MIN/MAX优化函数 163
7.2.10 cre