数据库系统-查询优化

一、查询优化概述

较少IO次数、内存消耗
谓词下推
在这里插入图片描述

三个层面进行优化:

  • 语义优化:模型的语义以及完整性规则,优化查询
  • 语义优化–逻辑层优化:利用语法结构,优化操作执行顺序
  • 语义优化–物理层优化:存取路径&执行算法的选择与执行次序优化

二、优化的基本思路

2.1 语义优化-内容等价性

在这里插入图片描述

2.2 语义优化-语法等价性

在这里插入图片描述
更可能早的做选择 、投影 运算

2.3 执行优化(物理层优化)

在这里插入图片描述

2.4 优化在整个DBMS的位置

在这里插入图片描述

三、逻辑查询优化

3.1 逻辑优化整体思路

在这里插入图片描述

  1. 早做选择和投影,让中间结果变小,节省巨大的执行时间
  2. 选择&投影串接起来,一次IO ,选择投影全部执行完
  3. 投影&前后的二元运算(两个关系式的并交叉)结合起来,IO时去掉一些无关的属性,避免多次扫
  4. 选择&前的笛卡尔积合并成一个连接
  5. 执行连接运算前对关系做适当的预处理:排序、临时index
  6. 找出表达式里的公共字表达式,共用一个子表达式结果
    在这里插入图片描述

3.2 关系代数操作次序交换的等价性

并 差 积 选择 投影
在这里插入图片描述

定理1 连接&连接 积&积 交换律

在这里插入图片描述

定理2 连接&连接 积&积 结合律

在这里插入图片描述

定理3 投影串接律

在这里插入图片描述

定理4 选择串接律

在这里插入图片描述

定理5 选择和投影交换律

在这里插入图片描述

定理6 选择和积的交换律

在这里插入图片描述

定理7 投影和积的交换律

在这里插入图片描述

定理8 选择和并的交换律

在这里插入图片描述

定理9 选择和差的交换律

在这里插入图片描述

定理10 投影和并的交换律

在这里插入图片描述
在执行差的时候,需要比对全部的col,而不是选择的那几个col

定理的运用

在这里插入图片描述

3.3 关系代数优化的示例

四、物理查询优化

4.1 为什么需要物理查询优化?

在这里插入图片描述

4.2 物理优化的整体思路

在这里插入图片描述

4.3 物理计划优化的评价标准

  • IO次数
  • CPU占用
  • 内存使用代价
  • 中间结果存储代价
  • 计算量(搜索 合并 排序 字段值计算等)
  • 网络通讯量
    在这里插入图片描述

4.3.2 如何获取评价指标

  • 不会自动收集,需要DBA用特定命令完成信息统计,并把结果存入系统目录中的实用程序
  • 随着表更新修改,DBMS会定时更新系统信息
    在这里插入图片描述
    在这里插入图片描述

4.3.3 代价评估

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oifengo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值