全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 程序与语言

PostgreSQL技术内幕(查询优化深度探索)

  • 定价: ¥79
  • ISBN:9787121341489
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:电子工业
  • 页数:395页
  • 作者:张树杰
  • 立即节省:
  • 2018-06-01 第1版
  • 2018-06-01 第1次印刷
我要买:
点击放图片

导语

  

内容提要

  

    查询优化器是数据库中很重要的模块之一,只有掌握好查询优化的方法且了解查询优化的细节,在对数据库调优的过程中才能有的放矢,否则调优的过程就如无本之木、无源之水,虽上下求索而不得其法。
    张树杰著的《PostgreSQL技术内幕(查询优化深度探索)》揭示了PostgreSQL数据库中查询优化的实现技术细节,首先对子查询提升、外连接消除、表达式预处理、谓词下推、连接顺序交换、等价类推理等逻辑优化方法进行了详细描述,然后结合统计信息、选择率、代价对扫描路径创建、路径搜索方法、连接路径建立、Non-SPJ路径建立、执行计划简化与生成等进行了深度探索,使读者对PostgreSQL数据库的查询优化器有深层次的了解。
    本书适合数据库内核开发人员及相关领域的研究人员、数据库DBA、高等院校相关专业的本科生或者研究生阅读。

作者简介

    张树杰,拥有13年IT从业经验,从事国产数据库内核开发工作多年,对数据库内核各个方面均有涉猎,近些年专注于研究如何改进分布式数据库的查询优化、查询执行,目前在Pivotal公司从事Apache HAWQ数据库的内核开发工作。

目录

第1章  概述
  1.1  查询优化的简介
  1.2  逻辑优化
    1.2.1  关系模型
    1.2.2  逻辑优化示例
  1.3  物理优化
    1.3.1  物理优化的4个“法宝”
    1.3.2  物理路径的生成过程
  1.4  文件介绍
  1.5  示例的约定
  1.6  小结
第2章  查询树
  2.1  Node的结构
  2.2  Var结构体
  2.3  RangeTblEntry结构体
  2.4  RangeTblRef结构体
  2.5  JoinExpr结构体
  2.6  FromExpr结构体
  2.7  Query结构体
  2.8  查询树的展示
  2.9  查询树的遍历
  2.10  执行计划的展示
  2.11  小结
第3章  逻辑重写优化
  3.1  通用表达式
  3.2  子查询提升
    3.2.1  提升子连接
    3.2.2  提升子查询
  3.3  UNION ALL优化
  3.4  展开继承表
  3.5  预处理表达式
    3.5.1  连接Var的溯源
    3.5.2  常量化简
    3.5.3  谓词规范
    3.5.4  子连接处理
  3.6  处理HAVING子句
  3.7  GroupBy键值消除
  3.8  外连接消除
  3.9  grouping_planner的说明
  3.10  小结
第4章  逻辑分解优化
  4.1  创建RelOptInfo
    4.1.1  RelOptInfo结构体
    4.1.2  IndexOptInfo结构体
    4.1.3  创建RelOptInfo
  4.2  初识等价类
  4.3  谓词下推
    4.3.1  连接条件的下推
    4.3.2  过滤条件的下推
    4.3.3  连接顺序
    4.3.4  deconstruct_recurse函数
    4.3.5  make_outerjoininfo函数
    4.3.6  distribute_qual_to_rels函数
    4.3.7  reconsider_outer_join_clauses函数
    4.3.8  generate_base_implied_equalities函数
    4.3.9  记录表之间的等价关系
  4.4  PlaceHolderVar的作用
  4.5  Lateral语法的支持
    4.5.1  Lateral的语义分析
    4.5.2  收集Lateral变量
    4.5.3  收集Lateral信息
  4.6  消除无用连接项
  4.7  SemiJoin消除
  4.8  提取新的约束条件
    4.8.1  提取需要满足的条件
    4.8.2  提取流程
    4.8.3  选择率修正
  4.9  小结
第5章  统计信息和选择率
  5.1  统计信息
    5.1.1  PG_STATISTIC系统表
    5.1.2  PG_STATISTIC_EXT系统表
    5.1.3  单列统计信息生成
    5.1.4  多列统计信息生成
  5.2  选择率
    5.2.1  使用函数依赖计算选择率
    5.2.2  子约束条件的选择率
    5.2.3  基于范围的约束条件的选择率修正
  5.3  OpExpr的选择率
    5.3.1  eqsel函数
    5.3.2  scalargtsel函数
    5.3.3  eqjoinsel函数
  5.4  小结
第6章  扫描路径
  6.1  代价(Cost)
    6.1.1  代价基准单位
    6.1.2  启动代价和整体代价
    6.1.3  表达式代价的计算
  6.2  路径(Path)
    6.2.1  Path结构体
    6.2.2  并行参数
    6.2.3  参数化路径
    6.2.4  PathKey
  6.3  make_one_rel函数
  6.4  普通表的扫描路径
    6.4.1  顺序扫描
    6.4.2  索引扫描
    6.4.3  位图扫描
  6.5  小结
第7章  动态规划和遗传算法
  7.1  动态规划
    7.1.1  make_rel_from_joinlist函数
    7.1.2  standard_join_search函数
    7.1.3  join_search_one_level函数
  7.2  遗传算法
    7.2.1  种群初始化
    7.2.2  选择算子
    7.2.3  交叉算子
    7.2.4  适应度计算
  7.3  小结
第8章  连接路径
  8.1  检查
    8.1.1  初步检查
    8.1.2  精确检查
    8.1.3  “合法”连接
  8.2  生成新的RelOptInfo
  8.3  虚表
  8.4  Semi Join和唯一化路径
  8.5  建立连接路径
    8.5.1  sort_inner_and_outer函数
    8.5.2  match_unsorted_outer函数
    8.5.3  hash_inner_and_outer函数
  8.6  路径的筛选
  8.7  小结
第9章  Non-SPJ优化
  9.1  集合操作处理
  9.2  Non-SPJ路径
    9.2.1  Non-SPJ预处理
    9.2.2  Non-SPJ路径生成
  9.3  小结
第10章  生成执行计划
  10.1  转换流程
    10.1.1  扫描计划
    10.1.2  连接计划
  10.2  执行计划树清理
  10.3  小结