1、数据存储与查询实现的基本框架
解释清楚这张图
2、查询实现算法概述
说明清楚原理;
3、 查询优化
包括三个层面进行优化:
- 语义优化
- 语法优化--- 逻辑层优化:利用语法结构,优化操作执行顺序,找到一种执行性能最好的关系代数操作次序
- 执行优化 ---物理层优化:存取路径和执行算法的选择与执行次序优化
查询优化的总体思路
(1)语义优化---内容等价性 --正在研究的方向
(2)语法优化--逻辑层的优化
通过穷举法,研究那些操作是可以交换的,形成定理;
再在这个基础上,研究那些操作可以优化查询的速度,比如投影操作应该最先开始做;等等
有了这些,就可以针对具体的一个sql语句进行优化;
一些理解:1、数据库系统里内置了很多种查询算法,会针对我们的sql语句选择不同的算法执行;
2、sql语句是
比如一条很简单的连接查询sql:
sql
select A.score from A where A.name = B.name
有很多种实现算法(执行顺序)
- 先将A 和B连接,再做投影
- 先投影,再做连接
- ......
数据库管理系统会选择一条性能好的查询算法,进行执行;