cmu15445 查询优化- 上
date
Jul 17, 2023
slug
query-optimizer-1
status
Published
tags
Database
15445
summary
本文介绍了查询优化的相关内容,包括关系代数等价、谓词下推、逻辑查询优化、嵌套子查询、表达式重写和基于成本的查询规划等。通过使用静态规则和启发式方法来优化查询计划,以及使用成本模型来帮助执行更高级的查询优化,可以提高数据库的性能。
type
Post
AGENDARBO1. Relational Algebra Equivalences 等价PREDICATE PUSHDOWN 谓词下推2. LOGICAL QUERY OPTIMIZATIONSPLIT CONJUNCTIVE PREDICATES3. NESTED SUB-QUERIESREWRITEDECOMPOSE4. EXPRESSION REWRITINGCBOCOST-BASED QUERY PLANNINGPG COST MODELDB2 COST MODELCONCLUSION
AGENDA

RBO
1. Relational Algebra Equivalences 等价

如果关系表达式等价输出就是等价的
PREDICATE PUSHDOWN 谓词下推


最基础的原理 关系代数表达式等价


- inner join 符合交换律
- inner join 符合结合律
- 2 表 join 至少有 4 的 2 次方种路径
- 性能短板

- 提前物化:执行过程种就把最后要输出的列找到,把别的列干掉
- 延迟物化:不管最后输出哪几列,join 时候就管那个连接键,输出的时候在回表去查
- 列存永远是最后物化

2. LOGICAL QUERY OPTIMIZATION

- 写规则去模式匹配
- 不能比较好坏 直接生成

SPLIT CONJUNCTIVE PREDICATES




- 笛卡尔积和谓合起来变成带有等价连接的 join

3. NESTED SUB-QUERIES

REWRITE

打散写成一句
DECOMPOSE



4. EXPRESSION REWRITING










CBO
COST-BASED QUERY PLANNING

- 估计仅在内部有意义
- 这与我们下节课将讨论的计划枚举步骤无关。

- Choice 1:Physical Costs
- 数据库一体机上
- Choice 2:Logical Costs
- Choice 3:Algorithmic Costs

- 磁盘开销模型
PG COST MODEL

- 举例 PG 的开销

- 写死的魔法数字来估计代价
- 默认设置显然适用于没有大量内存的磁盘驻留数据库: 在内存中处理元组比从磁盘读取元组快400倍,顺序I/O比随机I/O快4倍。

- 注意:不幸的是,没有明确定义的方法来确定成本变量的理想值。它们最好作为特定安装将收到的整个查询组合的平均值。这意味着仅仅根据几个实验来更改它们是非常危险的。
DB2 COST MODEL

- 系统目录中的数据库特征
- 硬件环境(微基准测试)
- 存储设备特性(微基准)
- 通信带宽(仅分布式)
- 内存资源(缓冲池、排序堆)
- 并发环境
CONCLUSION

我们可以使用静态规则和启发式方法来优化查询计划,而无需了解数据库的内容。
我们使用成本模型来帮助执行更高级的查询优化