启发式规则在优化器阶段的应用

启发式规则在逻辑优化阶段的应用--源自《数据库查询优化器的艺术》P42

逻辑优化阶段使用的启发式规则通常包括如下两类:

一定能带来优化效果的,主要包括:

优先做选择和投影(连接条件在查询树上下推)。

子查询的消除。

嵌套连接的消除。

外连接的消除。

连接的消除。

使用等价谓词重写对条件化简。

语义优化。

剪掉冗余操作(一些剪枝优化技术)、最小化查询块。

变换未必会带来性能的提高,需根据代价选择,重要包括:

分组的合并。

借用索引优化分组、排序、DISTINCT等操作。

对视图的查询变为基于表的查询。

连接条件的下推。

分组的下推。

连接提取公共表达式。

谓词的上拉。

用连接取代集合操作。

UNIONALL取代OR操作



启发式规则在物理查询优化阶段的使用--源自《数据库查询优化器的艺术》P413

MySQL物理查询优化阶段使用的启发式规则如下:

两个关系连接的两种顺序中必然存在一个代价较小的:MySQL在构造内连接的时候,两个关系在连接前先排序,元组少的在前,MySQL认为这样的连接花费最小。

笛卡尔积操作具有较高代价,尽量不做笛卡儿积操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值