【学习笔记】数据库基础 - 查询优化

什么是数据库查询优化?

计算机科学家们,一直在追求着一些较为通用的目的,比如:

1.通过计算机去解决更多的问题
2.通过计算机去更快的解决问题

而数据库查询优化的目的,更多服务于后面的这个目的,更快的进行查询,快速响应查询结果

影响查询优化的因素

而在数据库查询中,哪些因素影响着查询的效率呢?

1.计算的数据量。数据量越大,一般计算的次数越多,计算的时间也越长。
2.IO。这也和第一条有关,往往数据量越大,需要的存储空间越大(这里认为数据库中的数据是存在硬盘中的),所以IO的开销越大。

为了进一步深入理解这个问题,我们引入一个简单的例子

  • 该例子从关系代数角度进行讲解。
  • S t u d e n t ∗ S C ∗ C o u r s e Student * SC * Course StudentSCCourse最先进行计算,然后后续的计算都建立在此计算结果之上。即,随后的选择操作将会建立在巨大的数据量之上,这计算是非常耗时的

一个经验大数据量如果经过计算步骤越多,那么越耗时。所以,如果能够在等价情况下,在计算早期将数据量降下来,那么将大大提升查询速度

在这里插入图片描述
下面给出了,针对上面的情况的一些等价的关系代数式,这些关系代数将数据量在早期将量降了下来,从而使得:

  • 在笛卡尔积之前将数据量降了下来,从而使得笛卡尔积后,数据量不会太大。
  • 之前的巨大数据量,不会出现在任何一个步骤,大大节省了计算时间。
    在这里插入图片描述

优化策略概述

在这里插入图片描述

查询优化的总体思路

在这里插入图片描述

语义优化 – 内容等价性

本文章中暂且不深入探讨此方面的内容。

在这里插入图片描述

语法优化(逻辑层优化)—语法等价性

在这里插入图片描述
在这里插入图片描述

执行优化(物理层优化)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值