数据库查询优化

本文详细介绍了数据库查询的处理步骤,包括查询分析、查询检查、查询优化和查询执行,并探讨了选择算法的实现,如全表扫描、索引扫描,以及连接操作的实现,包括嵌套循环、排序-合并和索引连接、Hash Join算法,旨在提高查询效率。
摘要由CSDN通过智能技术生成


关系型数据库查询优化一般可分为代数优化(也称为逻辑优化)和物理优化(非代数优化)。代数优化是指关系代数表达式的优化,物理优化则是通过存取路径和底层操作算法的选择进行优化。

查询处理步骤

1 查询分析

首先对查询语句进行扫描、词法分析和语法分析。从查询语句中识别出语言符号,如SQL关键字、属性名和关系名等,进行语法检查和语法分析。

2 查询检查

对合法的检查语句进行语义检查,即根据数据字典中有关的模式定义检查语句中的数据库对象,如关系名,属性名是否存在和有效。关系数据库一般使用查询树,也称为语法分析树。

3 查询优化

每个查询都会有许多可供选择的执行策略和操作算法,查询优化就是选择一个高效执行的查询处理策略。查询优化一般可分为代数优化和物理优化。代数优化是指关系代数表达式的优化,即按照一定的规则,通过对关系代数表达式进行等价交换,改变代数表达式中操作的次序和组合,使执行更高效;物理优化则是通过存取路径和底层操作算法的选择进行优化。

4 查询执行

依据优化器得到的执行策略生成查询执行计划,由代码生成器生成执行这个查询计划的代码。

查询算法操作

1 选择算法的实现

例如:select * from student from <条件表达式>

简单的全表扫描算法

对表进行顺序扫描,当选择率(即满足条件的元组数占全表的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值