Skip to content

1、数据存储与查询实现的基本框架

解释清楚这张图

2、查询实现算法概述

说明清楚原理;

3、 查询优化

包括三个层面进行优化:

  • 语义优化
  • 语法优化--- 逻辑层优化:利用语法结构,优化操作执行顺序,找到一种执行性能最好的关系代数操作次序
  • 执行优化 ---物理层优化:存取路径和执行算法的选择与执行次序优化

查询优化的总体思路

(1)语义优化---内容等价性 --正在研究的方向

(2)语法优化--逻辑层的优化

通过穷举法,研究那些操作是可以交换的,形成定理;

再在这个基础上,研究那些操作可以优化查询的速度比如投影操作应该最先开始做;等等

有了这些,就可以针对具体的一个sql语句进行优化;

一些理解:1、数据库系统里内置了很多种查询算法,会针对我们的sql语句选择不同的算法执行;

2、sql语句是

比如一条很简单的连接查询sql:

sql
select A.score from A where A.name = B.name

有很多种实现算法(执行顺序)

  • 先将A 和B连接,再做投影
  • 先投影,再做连接
  • ......

数据库管理系统会选择一条性能好的查询算法,进行执行;

(3)物理层优化