开发工具:
文件大小: 2mb
下载次数: 0
上传时间: 2015-05-11
详细说明: 目 录 推荐序一 推荐序二 前 言 第一篇 查询优化技术 第 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 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 查询优化器 原理解析 第 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.prepare——优化 前的准备工作 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 查询优化器 第 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 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.