PostgreSQL 性能优化: 执行计划

查询计划

  • 扫描结点
    • 顺序扫描
    • 索引扫描
    • 只用索引的扫描
    • 位图堆扫描
    • 位图索引扫描
    • 公共表表达式的扫描
    • 自定义扫描
    • 外表扫描
    • 函数结果扫描
    • 子查询扫描
    • 表样本扫描
    • 行地址扫描
    • 行集合扫描
    • 工作表扫描
  • 连接结点
    • 哈希连接
    • 合并连接
    • 嵌套连接
  • 物化结点
    • 聚合
    • 位图与
    • 位图或
    • 分组
    • 哈希
    • 物化
    • Result
    • 集合运算
    • 排序
    • 去重
    • 窗口聚合
  • 控制结点
    • 追加
    • 聚集合并
    • 聚集
    • Limit
    • 锁定行
    • 合并追加
    • 改表
    • 集合投影
    • 递归并集
  • 结点属性
    • 过滤器
    • 索引条件
    • 过滤器删除的行数
    • 索引出的不满足条件的行数
    • 扫描方向
    • 堆表访问行数
    • 位图堆扫描精确块数
    • 位图堆扫描有损块数
    • 位图扫描过滤条件
    • 哈希条件
    • 内行唯一
    • 连接过滤器
    • 连接类型
    • 连接过滤器删除行数
    • 合并条件
    • 部分模式
    • 聚合策略
    • 哈希批次
    • 哈希桶数
    • 原始哈希批次
    • 原始哈希桶数
    • 内存使用峰值
    • 集合操作
    • 排序方式
    • 排序键
    • 排序空间类型
    • 排序使用空间
    • 启动工作者数
    • 计划工作者数
    • 单次执行计划

PostgreSQL为每个收到的查询产生一个查询计划。查询计划的结构是一个计划结点的树。最底层的结点是扫描结点:它们从表中返回未经处理的行。不同的表访问模式有不同的扫描结点类型:顺序扫描、索引扫描、位图索引扫描。也还有不是表的行来源,例如VALUES子句和FROM中返回集合的函数,它们有自己的结点类型。如果查询需要连接、聚集、排序、或者在未经处理的行上的其它操作,那么就会在扫描结点之上有其它额外的结点来执行这些操作。并且,做这些操作通常都有多种方法,因此在这些位置也有可能出现不同的结点类型。

你可能感兴趣的:(PostgreSQL,文档,postgresql,数据库,性能优化)