数据库查询优化引擎可以怎样实现查询优化---物理查询优化

前一节介绍了逻辑优化,包括语义上的优化等,体现在等价的结果集的基础上,是的执行时间最短,使用建立索引的条件查询来实现等。这节就开始从物理的层面优化,物理层面的优化就体现在算法,以及索引。

单标扫描算法

这里的扫描算法也是需要结合索引来说,如果没有建立索引,查询执行计划的时候就出现seqscan,如果建立了索引就出现indexscan。这里单表扫描重点在于常用的全表扫描以及局部扫描,索引扫描,行扫描,并行表扫描,组合索引扫描等,相关的含义可以参考书中的46页有详细额介绍,但是背书的环节只会在面试上用到,所以了解即可。下面重点关注索引,有关索引,作者是花了整整一章的来描述,可见其重要性。

索引

索引是为了减少IO的操作,实现更快的获取数据。一般常见的使用方式是,索引作为条件出现在WHERE ,ON ,HAVING, ORDERBY等,但是如果出现ORDERBY出现的非索引列,这时候还是seqscan来运行。或者作为连接表出现到过滤条件中。但是如果遇到!= 这种不等于操作的时候,这时候顺序扫描就比索引扫描性能要好。但是如果使用索引出现在GROUPBY的条件中,不会触发索引。同样DISTINCT的执行也是不会执行索引。

两表连接算法

两表连接的时候,优化器执行的是嵌套连接算法,基于元组块实现嵌套,一般分为嵌套循环连接,归并连接,Hash连接。简单介绍到这里,只要是需要知道两表的连接是如何产生嵌套即可。

多表连接的顺序

基本这个是反映

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值