美文网首页
CMU 15445 10. 连接

CMU 15445 10. 连接

作者: 西部小笼包 | 来源:发表于2019-06-24 20:35 被阅读0次

为什么我们需要连接?

我们规范化关系数据库中的表,以避免不必要的信息重复。
我们使用join操作来重建原始元组而不会丢失任何信息。

不同算法的成本分析

image.png

下面一共会介绍5种连接算法。
分别是

  • simple loop join
  • block loop join
  • index loop join
  • sort-merge join
  • hash join

simple loop join

image.png image.png

block loop join

优化1,读取整块,2变各读取整块后,开始循环这2个整块 然后JOIN。


image.png
image.png

利用全BUFFER 提速

我们假设有B个BUFFER, B-2个用来扫描外层表。一个扫描内层表,一个用来存储OUTPUT。


image.png
image.png

利用INDEX提速

image.png
Assume the cost of each index probe is some
constant C per tuple.
Cost: M + (m ∙ C)

Sort-Merge Join

分为2个阶段,

  1. 使用外排序算法对2个TABLE做排序
  2. 使用MERGE,找到MATCHING的元组


    image.png
    image.png
    image.png

什么时候使用SORT-MERGE JOIN比较好?

当一个或者2个TABLE已经按照JOIN KEY 排好序了。
输出必须要在JOIN KEY上排好序的。

Hash join

Hash Join 的思想就是2边都按JOIN KEY 做HASH,那么JOIN KEY相等的肯定在一个HASH分块里。


image.png
image.png
image.png image.png

总结

image.png

相关文章

  • CMU 15445 10. 连接

    为什么我们需要连接? 我们规范化关系数据库中的表,以避免不必要的信息重复。我们使用join操作来重建原始元组而不会...

  • CMU 15445 6.B+树 + homework2

    https://15445.courses.cs.cmu.edu/fall2018/slides/07-trees...

  • CMU 15445 7.skip list + radix tr

    https://15445.courses.cs.cmu.edu/fall2018/notes/08-trees2...

  • CMU 15445 Project 4 实现Logging An

    LAB 第一个TASK的实现目标,就是去记录LOG。但是不是每次写LOG都会直接去落盘,也是会先CACHE在一个B...

  • CMU 15445 15. TO + OCC + MVCC

    时间戳排序(T / O)是一种乐观的并发控制协议类,其中DBMS假定事务冲突很少。 DBMS不是要求事务在允许读取...

  • CMU 15445 12. 并发模型

    背景 所有并行执行查询的DBMS都提供了以下几个好处: 提高吞吐量和延迟性能。 提高可用性。 可能降低总体拥有成本...

  • CMU 15445 11. Query 优化

    SQL是声明性的。 这意味着用户告诉DBMS他们想要什么答案,而不是如何得到答案。 因此,DBMS需要将SQL语句...

  • CMU 15445 8. Query plan

    DBMS将SQL语句转换为查询计划。 Operator被安排在Tree上。 数据从叶子流向根。 树中根节点的输出是...

  • CMU 15445 13.并发控制理论

    ACID 子性:一个事务的所有的操作要么全发生,要么全不发生一致性:如果在事务的开始,数据库的状态是一致的,那么可...

  • CMU 15445 Project 3 实现Lock Manag

    此LAB 按照2017的要求 做到后面发现因为缺少极多信息,比如API的框架,一些CONFIG的参数。我无法完成2...

网友评论

      本文标题:CMU 15445 10. 连接

      本文链接:https://www.haomeiwen.com/subject/ldqaqctx.html