CMU 15-445/645-Note5-执行篇-Join

本文基于CMU 15-445/645课程,详细介绍了Join操作的五种算法:Simple Loop Join、Block Loop Join、Sort-Merge Join、Hash Join,以及它们的时间复杂度分析。重点讨论了如何通过排序和哈希函数优化Join过程。
摘要由CSDN通过智能技术生成
0.写在前面

based on CMU 15-445/645 2020fall, Lecture #11.
Join是数据库中非常常见的操作。
对于Join操作,大致可以分为三种:Loop、Sort、Hash;下面是算法以及其时间的介绍。

1:Join算法
1.1Simple loop join

最最最暴力的算法,二重循环。

1.2 Block loop join

在这里插入图片描述
由于可以用B - 2 个buffer来scan 关系R所以时间复杂度就可以减少非常多。
也可以利用Index来进行优化:
在这里插入图片描述
对于外层循环中的每一个元素。我们利用索引在内层关系中进行查找。假设索引所带来的消耗为C
所以总的时间就变成了𝑀+(𝑚×𝐶)

1.3 Sort-Merge Join

Sort Merge Join是利用排序后的table做join,其好处是排序后的table,相同的record都在一起,所以可以直接顺序读。思想类似于归并排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值