0
点赞
收藏
分享

微信扫一扫

<postgreSQL查询优化深度探索>之第一章:概述学习总结


文章目录

  • ​​一、查询优化的简介​​
  • ​​二、逻辑优化​​
  • ​​1.关系模型​​
  • ​​2.逻辑优化eg​​
  • ​​三、物理优化​​
  • ​​1.物理优化的4个法宝​​
  • ​​2.物理路径的生成过程​​
  • ​​四、文件介绍​​
  • ​​五、实例的约定​​
  • ​​六、小结​​

一、查询优化的简介

二、逻辑优化

1.关系模型

关系代数的5个基本操作符:选择、投影π、笛卡尔积X、并集、U、差集

  • eg:基本操作

    扩展操作

2.逻辑优化eg

若要获得编号为5的老师承担的所有的课程的名字

  • eg:关系代数的等价变换前后结果如下
    优化:分别从水平和垂直方向上尽早缩小笛卡尔积的中间结果
    (1)进来将选择操作下推到下层节点来做
    (2)尽量在叶子节点上使用投影缩小中间结果
  • <postgreSQL查询优化深度探索>之第一章:概述学习总结_数据库


三、物理优化

物理连接路径的作用就是指示查询执行器以何种方式实现逻辑操作符

1.物理优化的4个法宝

B+树

  • 索引扫描、位图扫描都会涉及B+树类型的索引

哈希表

  • (1)hash表可以实现分组
  • (2)Hash索引、适用于等值的约束条件
  • (3)Hash join,对内表建立Hash表,外表的元组在Hash表中进行探测

排序

  • (1)实现分组
  • (2)B树索引,因为B树索引的叶子节点是有序的
  • (3)MergeJoin、需要对内表和外表进行排序后,才可以进行Merge
  • (4)Order by数据排序

物化

  • 物化就是把扫描操作或者连接操作的结果保存起来

2.物理路径的生成过程

物理路径分为扫描路径和连接路径

  • 扫描路径是针对单个关系的,扫描路径时为连接路径做准备的
    (1)索引扫描
    (2)顺序扫描
    (3)位图扫描
    (4)TID扫描
  • <postgreSQL查询优化深度探索>之第一章:概述学习总结_database_02


  • <postgreSQL查询优化深度探索>之第一章:概述学习总结_database_03


  • 物理连接路径,是多个表
    (1)Netlooped Join、Netlooped Index Join
  • <postgreSQL查询优化深度探索>之第一章:概述学习总结_postgresql_04

  • (2)Hash Join
  • <postgreSQL查询优化深度探索>之第一章:概述学习总结_postgresql_05

  • (3)Merge Join
  • <postgreSQL查询优化深度探索>之第一章:概述学习总结_关系代数_06


路径搜索的方法

  • eg:若有3个表要做连接操作,每个表上有3个扫描路径,那么扫描路径的组合=27,由于表之间的连接顺序可以交换,3个表可能产生的连接顺序=12,每个连接路径可能的物理连接路径=9(带索引和不带索引的组合),那么最终生成3个表的连接路径树,总共要计算27129=2916种情况
四、文件介绍

<postgreSQL查询优化深度探索>之第一章:概述学习总结_database_07


<postgreSQL查询优化深度探索>之第一章:概述学习总结_postgresql_08


<postgreSQL查询优化深度探索>之第一章:概述学习总结_关系代数_09

五、实例的约定六、小结




举报

相关推荐

0 条评论