数据库的连接方式:
Nested loop join
Hash join
Merge join
Nested loop join:
Nested loop join的思路:
将Outer relation的每一行数据和Inner relation的每一行做对比,如果符合关联条件的话才会返回关联的数据集。
伪代码:
nested_loop_join(array outer, array inner)
for each row a in outer
for each row b in inner
if (match_join_condition(a,b))
write_result_in_output(a,b)
end if
end for
end for
因此这是一个两层的循环,它的算法时间复杂度是 O(N*M)。
根据磁盘的I/O,Outer relation有N行数据