PostgreSQL技术内幕

PostgreSQL技术内幕

查询优化深度探索

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。

作品简介

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

张树杰,北京大学工程管理硕士。2005年–2011年从事安全相关的工作,涉及入侵检测、数据库审计、虚拟桌面等等。2011年–2015年北京人大金仓信息技术股份有限公司从事数据库内核开发工作2015年–至今天津神舟通用数据技术有限公司北京分公司从事数据库内核开发工作及团队管理工作。

作品目录

  1. 内容简介
  2. 序一
  3. 序二
  4. 前  言
  5. 第1章 概述
  6. 1.1 查询优化的简介
  7. 1.2 逻辑优化
  8. 1.3 物理优化
  9. 1.4 文件介绍
  10. 1.5 示例的约定
  11. 1.6 小结
  12. 第2章 查询树
  13. 2.1 Node的结构
  14. 2.2 Var结构体
  15. 2.3 RangeTblEntry结构体
  16. 2.4 RangeTblRef结构体
  17. 2.5 JoinExpr结构体
  18. 2.6 FromExpr结构体
  19. 2.7 Query结构体
  20. 2.8 查询树的展示
  21. 2.9 查询树的遍历
  22. 2.10 执行计划的展示
  23. 2.11 小结
  24. 第3章 逻辑重写优化
  25. 3.1 通用表达式
  26. 3.2 子查询提升
  27. 3.3 UNION ALL优化
  28. 3.4 展开继承表
  29. 3.5 预处理表达式
  30. 3.6 处理HAVING子句
  31. 3.7 Group By键值消除
  32. 3.8 外连接消除
  33. 3.9 grouping_planner的说明
  34. 3.10 小结
  35. 第4章 逻辑分解优化
  36. 4.1 创建RelOptInfo
  37. 4.2 初识等价类
  38. 4.3 谓词下推
  39. 4.4 PlaceHolderVar的作用
  40. 4.5 Lateral语法的支持
  41. 4.6 消除无用连接项
  42. 4.7 Semi Join消除
  43. 4.8 提取新的约束条件
  44. 4.9 小结
  45. 第5章 统计信息和选择率
  46. 5.1 统计信息
  47. 5.2 选择率
  48. 5.3 OpExpr的选择率
  49. 5.4 小结
  50. 第6章 扫描路径
  51. 6.1 代价(Cost)
  52. 6.2 路径(Path)
  53. 6.3 make_one_rel函数
  54. 6.4 普通表的扫描路径
  55. 6.5 小结
  56. 第7章 动态规划和遗传算法
  57. 7.1 动态规划
  58. 7.2 遗传算法
  59. 7.3 小结
  60. 第8章 连接路径
  61. 8.1 检查
  62. 8.2 生成新的RelOptInfo
  63. 8.3 虚表
  64. 8.4 Semi Join和唯一化路径
  65. 8.5 建立连接路径
  66. 8.6 路径的筛选
  67. 8.7 小结
  68. 第9章 Non-SPJ优化
  69. 9.1 集合操作处理
  70. 9.2 Non-SPJ路径
  71. 9.3 小结
  72. 第10章 生成执行计划
  73. 10.1 转换流程
  74. 10.2 执行计划树清理
  75. 10.3 小结
  76. 反侵权盗版声明