嵌套循环连接(SQL)

✍ dations ◷ 2025-06-29 10:51:45 #

连接 (SQL)操作是数据库管理中重要的一环,而嵌套循环连接是通过嵌套的循环语句把多个表连接起来的简单算法,但是效率并不理想。

两个关系数据库表R和S通过如下的方法连接在一起:

  For each tuple r in R do     For each tuple s in S do        If r and s satisfy the join condition           Then output the tuple <r,s>

这种算法将会从硬盘中读取 nr*bs+ br 个页, br 和 bs 是R和S表所占用的页的个数, nr 是R表中的记录数。

这种算法的IO次数为  O ( | R | | S | ) {\displaystyle O(|R||S|)} | R | {\displaystyle |R|} | S | {\displaystyle |S|}


这种算法可以通过更改循环的嵌套方式减少硬盘的访问次数到 br*bs+ br 次。 对于R表的每一页,S的每一个记录只需要被读一次。

相关

  • 非对映体过量非对映体过量(diastereomeric excess, 缩写为de%),通常用来表征两个以上手性中心时的光学纯度。例如,某个拥有两个手性中心的分子,有四个非对映体:(R,R)、(R,S)、(S,S)、(S,R),两两
  • 流体动力学流体动力学(英语:Fluid dynamics)是流体力学的一门子学科。流体动力学研究的对象是运动中的流体(含液体和气体)的状态与规律。流体动力学底下的子学科包括有空气动力学和液体动力
  • 空气湿度湿度(英语:Humidity)一般在气象学中指的是空气湿度,它是空气中水蒸气的含量。与蒸汽干燥度(也称蒸汽的品质,英语:dryness fraction of steam, quality of steam)不同,空气中液态或固
  • 奥多亚塞奥多亚塞(Odoacer,亦作Odovacar;435年-493年)是意大利的第一个日耳曼蛮族国王(476年~493年在位)。奥多亚塞早年参加罗马军队。475年他率众反叛篡夺者欧瑞斯特。476年被军队拥为王。
  • 陈江华陈江华(1989年3月12日-),广东番禺人,中国篮球运动员,司职控球后卫。曾效力中国篮球职业联赛的广东华南虎篮球俱乐部。出生于广东省番禺县沙湾(今广州市番禺区沙湾街道涌口村)。在200
  • 联邦医疗保险联邦医疗保险(Medicare),为美国联邦政府对老年人和部分残疾人、重病患者提供的全国范围医疗保险。给付范围为住院费用,包括双人病房、餐点与检查。依据2016年1月1日联邦医疗保险
  • 侯乙羽周乙羽周,名周,乙羽姓,汉化后为侯姓,又作侯周。朔方人(或说是雁门人),是侯景的爷爷,侯标的父亲,住在朔州。551年,侯景之乱,侯景废黜萧栋,自称汉帝。左仆射王伟请立七庙,侯景只知道他的父亲(
  • 鲁道夫·安德森鲁道夫·安德森(英语:Rudolf Anderson、1927年9月15日-1962年10月27日),美国空军已故少校,为该国空军第二高级勋奖——空军十字勋章的首位受章者。安德森是古巴导弹危机期间唯一一
  • 侧鳃目侧鳃目(学名:Pleurobranchida),旧作侧鳃类(Pleurobranchomorpha)支序或右鳃类支序,是腹足纲软体动物的一个目级分类单元,是裸侧类两大分支的其中一支。其姊妹支序为裸鳃类支序。从布
  • 从属差异定义从属差异定义是内涵定义的一种 ,它由两部分组成: 以下两个定义为例: 这些定义可以表示为一个属和两个不同之处 : 在亚里斯多德 (384-322 BCE)之前,就使用属和差异来定义。 通过扩展