博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库系统概念-查询处理
阅读量:5093 次
发布时间:2019-06-13

本文共 1133 字,大约阅读时间需要 3 分钟。

选择运算

  • A1:线性搜索,平均代价Br/2,最坏情况Br
  • A2: 二分搜索,属性有序,代价[logBr]

    索引选择

  • A3: (主索引,码属性等值比较)可以检索到唯一一条满足条件的记录,代价:B+树树高加上读取一条记录I/O代价
  • A4: (主索引,非码属性等值比较)主索引可以检索到多条满足条件的记录,且多条记录顺序存储,代价:B+树树高加上具有搜索码值的盘块数
  • A5: (辅助索引,等值比较)索引字段为码属性直接得到一条记录.索引字段为非码属性,得到多条记录

    比较选择

  • A6: (主索引,比较)B+树有序主索引
  • A7: (辅助索引,比较)有序辅助索引,小值从小段开始,大值从 大端开始

    比较选择

  • A8: 索引合取(取交)先现则满足一个条件的记录,加入缓冲区,在缓冲区中验证其他条件
  • A9: (组合所用合取)直接利用合适的符合索引查询
  • A10: (记录标识符的交)每个条件遍历标记一边,取所有被标记的交际
  • A11: (记录标识符的并)逐一扫描索引获取满足单个条件的元祖指针,将所有指针集做并集

连接运算

  • 嵌套循环(重名属性会出现)
  • 块嵌套循环,每次在块内循环嵌套检查元组匹配,有效减少比较次数
  • 索引嵌套循环连接:嵌套循环连接的内层如果有索引,使用索引代替循环
  • 归并链接:用于自然链接和等值连接
    • 双有序直接有序归并
    • 单有序,归并后,对索引项进行按地址排序,可实现有序
  • 消除重复: 代价高,明确声明是否去重
    • 归并/散列可直接在过程中消除重复
  • 集合
    • 并集: Hr建立散列索引,将Hs中元组加入到上诉散列索引中,条件是该元组不在散列索引中,散列索引最终即结果
    • 交集: Hr建立散列索引,对Hs中元组探查散列索引,出现在散列索引的记录放入结果
    • 差集: Hr建立散列索引,对Hs中元组探查散列索引,出现在散列索引的记录从索引中删除

外连接

- 计算连接法:    - 左外连接:计算链接,将左集未参与链接集合扩展放入结果    - 右外连接:计算链接,将右集未参与链接集合扩展放入结果    - 全外连接:计算链接,将左右集未参与链接集合扩展放入结果- 嵌套修改法    - 左外连接:左边外循环,右表内循环,内外匹配加入结果,内部均不匹配的外记录也加入结果    - 右外连接:右边外循环,左表内循环,内外匹配加入结果,内部均不匹配的外记录也加入结果- 扩展归并连接获得自然链接和等值全外联    - 归并完成,将不与另一关系任一记录匹配的记录加入结果

表达式计算

  • 实体化:中间结果实体化,供下一层运算,磁盘代价高,双缓冲降低磁盘代价
  • 流水线:生产者驱动流水线,需求驱动流水线

转载于:https://www.cnblogs.com/zeroArn/p/6202502.html

你可能感兴趣的文章
使用word发布博客
查看>>
构建oracle12c的Docker镜像
查看>>
用户权限命令(chmod,chown,umask,lsattr/chattr)
查看>>
Maven详解
查看>>
Linux系统中‘dmesg’命令处理故障和收集系统信息的7种用法
查看>>
数据结构 : Hash Table [II]
查看>>
面向对象的小demo
查看>>
获取地址栏参数
查看>>
java之hibernate之helloworld
查看>>
微服务之初了解(一)
查看>>
Iterator invalidation(迭代器失效)
查看>>
GDOI DAY1游记
查看>>
Android 网络编程
查看>>
移动端前端笔记 — 遇到的常见JS与CSS问题及解决方法
查看>>
算法笔记_039:杨辉三角形(Java)
查看>>
C# 退出程序方法
查看>>
命令行卸载IE
查看>>
解决图片三像素的问题
查看>>
代码重构七
查看>>
php socket通信(tcp/udp)
查看>>