图书介绍
数据库查询优化器的艺术 原理解析与SQL性能优化PDF|Epub|txt|kindle电子书版本网盘下载
- 李海翔著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111447467
- 出版时间:2014
- 标注页数:514页
- 文件大小:216MB
- 文件页数:531页
- 主题词:关系数据库系统-系统最优化
PDF下载
下载说明
数据库查询优化器的艺术 原理解析与SQL性能优化PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一篇 查询优化技术2
第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查询优化器原理解析76
第5章PostgreSQL查询优化器概述76
5.1 PostgreSQL查询执行过程76
5.2 PostgreSQL查询优化器的78
架构和设计思想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 create_plan——创建查询执行计划函数164
7.2.11非SPJ处理——grouping_planner的各个子模块166
7.2.12其他重要的函数与操作170
7.3代价估算实现原理解析174
7.3.1查询代价估算174
7.3.2单表扫描方式的代价估算174
7.3.3两表连接的代价估算178
7.3.4其他代价估算函数184
7.3.5选择率的计算185
7.4从目录结构和文件功能角度看查询优化器186
7.4.1查询优化子模块与主要文件的关系187
7.4.2查询优化器代码结构187
7.5本章小结190
第8章 从功能的角度看PostgreSQL查询优化192
8.1优化器之逻辑查询优化192
8.1.1视图重写193
8.1.2子查询优化197
8.1.3等价谓词重写209
8.1.4条件化简209
8.1.5外连接消除210
8.1.6嵌套连接消除217
8.1.7连接的消除218
8.1.8语义优化221
8.1.9选择操作下推226
8.1.10非SPJ优化226
8.2优化器之物理查询优化229
8.2.1 PostgreSQL的物理优化主要完成的工作229
8.2.2启发式规则在物理查询优化阶段的使用230
8.2.3两表连接230
8.2.4代价估算230
8.2.5 PostgreSQL的索引与查询优化231
8.3其他237
8.3.1 grouping_planner函数主干再分析238
8.3.2用户指定的连接语义与PostgreSQL实现两表连接的函数及算法的关系240
8.3.3集合操作优化242
8.4本章小结245
第9章 PostgreSQL查询优化的关键算法246
9.1动态规划算法246
9.1.1动态规划算法的处理流程247
9.1.2紧密树处理流程248
9.2遗传算法248
9.2.1 PostgreSQL遗传算法的处理流程248
9.2.2主要的数据结构250
9.2.3主要的函数和变量251
9.2.4应用遗传算法实现表连接的语义253
9.2.5应用遗传算法计算适应度254
9.2.6进一步理解PostgreSQL的遗传算法255
9.3动态规划算法与遗传算法对比256
9.4本章小结257
第10章PostgreSQL查询优化器与其他部分的关系259
10.1查询优化器与语法分析器259
10.2查询优化器与执行器260
10.3查询优化器与缓冲区管理模块261
10.4查询优化器与对象访问模块262
10.5查询优化器与统计模块262
10.6查询优化器与索引模块263
10.7本章小结263
第三篇 MySQL查询优化器原理解析266
第11章MySQL查询优化器概述266
11.1 MySQL查询执行过程266
11.2 MySQL查询优化器的架构和设计思想267
11.2.1 MySQL查询优化器架构268
11.2.2 MySQL查询优化器的层次269
11.2.3 MySQL查询优化器设计思想269
11.3主要概念270
11.3.1常量表270
11.3.2表数据的访问方式270
11.4代码层次结构272
11.5本章小结274
第12章 MySQL查询优化器相关数据结构275
12.1主要的类和数据结构275
12.1.1查询树275
12.1.2基本对象276
12.1.3连接对象与执行计划278
12.1.4代价估算类281
12.2各个阶段主要结构体间的关系282
12.3本章小结282
第13章 MySQL查询优化器的原理解析283
13.1查询优化器整体流程283
13.2优化器的代码详解285
13.2.1 JOIN.prep——优化前的准备工作286
13.2.2 JOIN.optimize——优化器主入口方法299
13.2.3 make_join_statistics——计算最优的查询优化执行计划315
13.2.4 choose_table_order——求解多表连接最优连接路径324
13.2.5 make_join_statistics函数的其他子函数339
13.2.6 make_join_select——对条件求值、下推连接条件到表中348
13.2.7 test_if_skip_sort_order——排序操作的优化350
13.2.8 make_join_readinfo——为连接的每个表构造信息351
13.2.9 JOIN。exec——执行查询执行计划的函数353
13.3代价估算354
13.3.1查询代价估算模型354
13.3.2查询代价估算过程355
13.3.3其他的代价估算358
13.3.4对存储引擎的调用接口362
13.3.5统计信息364
13.4本章小结365
第14章 从功能的角度看MySQL查询优化366
14.1优化器之逻辑查询优化366
14.1.1视图重写367
14.1.2子查询优化371
14.1.3等价谓词重写387
14.1.4条件化简388
14.1.5外连接消除389
14.1.6嵌套连接消除396
14.1.7连接的消除398
14.1.8语义优化400
14.1.9非SPJ优化406
14.2优化器之物理查询优化412
14.2.1 MySQL的物理优化主要完成的工作412
14.2.2启发式规则在物理查询优化阶段的使用413
14.2.3 MySQL的索引与查询优化413
14.2.4用户指定的连接语义与MySQL实现两表连接的算法417
14.3本章小结418
第15章MySQL查询优化的关键算法419
15.1深入理解MySQL的多表连接算法419
15.2本章小结424
第16章 MySQL查询优化器与其他部分的关系425
16.1查询优化器与语法分析器425
16.2查询优化器与执行器426
16.3查询优化器与缓冲区管理模块426
16.4查询优化器与索引模块426
16.5本章小结427
第四篇 PostgreSQL查询优化器VS MySQL查询优化器430
第17章PostgreSQL和MySQL的逻辑查询优化技术430
17.1查询重写430
17.1.1子查询优化430
17.1.2视图重写443
17.1.3等价谓词重写446
17.1.4条件化简447
17.1.5外连接消除448
17.1.6嵌套连接消除449
17.1.7连接消除451
17.1.8语义优化452
17.2非SPJ的优化452
17.3本章小结456
第18章 PostgreSQL和MySQL的物理查询优化技术457
18.1查询代价估算模型比较457
18.2单表扫描算法458
18.3索引458
18.4两表连接算法466
18.5多表连接算法467
18.6本章小结467
第19章PostgreSQL和MySQL的其他异同468
19.1启发式规则的使用比较468
19.2综合比较469
19.2.1基本概念的比较469
19.2.2数据结构的比较469
19.2.3设计思想的比较469
19.2.4编码规范的比较470
19.3本章小结471
附录A 如何掌握数据库内核472
附录B 如何阅读本书496
附录C 如何阅读查询执行计划498
附录D 如何跟踪查询执行计划508