> 文章列表 > 关系数据库(查询优化)

关系数据库(查询优化)

关系数据库(查询优化)

  1.          选择操作的实现
    select * from student where Sno='201212128';

  2. 简单的全表扫描法


    优点:对于小表简单有效
    缺点:对于大表顺序扫描浪费时间效率低下

  3. 索引扫描方法

     

  • 连接操作的实现
     

连接操作是查询处理中最耗时的操作之一

select *from student,sc where student.sno=sc.sno;

 算法一:嵌套循环:
对外层循环(student)的每一个元组(s),检索内层循环(sc)中的每一个元组,并检查两个元组的连接属性(sno)的属性是否相同,如果满足 连接条件,则串接后作为结果输出,直到外层表中的元组循环结束。

算法二:排序--合并算法
表没有排序,则先按表的连接属性对sno进行排序,取student表中的的一个sno,依次扫描sc中具有相同属性的sno元组,将他们连接起来,扫描完sc中的sno元组发现没有对应的sno,则拿出student的第二个sno对sc中的sno元组进行扫描,直到student中的sno元组扫描完成。

  •  优化准则:
  •  关系代数表达式等价转换规则:
     
  1. 连接,笛卡尔积的交换律。
  2. 连接,笛卡尔积的结合律
  3. 投影的串接定律
  4. 选择的串接定律
  5. 选择与投影的交换律
  6. 选择与笛卡尔积的交换律
  7. 选择与并的分配律
  8. 选择与差的分配律
  9. 选择对自然连接的分配律
  10. 投影与笛卡尔积的分配律
  11. 投影与并的分配律