2020-12-23 DBA面试题一: nested lookup join, sort merge join,hash join

注:选择片段文章片段
DBA 被面试的时候,可能被面试官询问的,针对之前有过面试的小结,仅作为参考

oracle 中的 nested lookup join, sort merge join,hash join

nested lookup
假如有A,B两张表进行嵌套循环链接,那么oracle 会首先从A表中提取一条记录,接着去B表中查找相应的匹配记录,如果有的话,就把该条记录的信息推到等待返回的结果集中去,然后再从A中提取第二条记录,再去B表中找第二条匹配的记录,如果符合就推到返回的结果中,依次顺序,只到A表中的数据全部处理完成,将结果集返回,就完成嵌套循环连接的查询.

hash Join
假如有A,B两张表进行哈希连接,那么oracle 会首先将B表在内存中建立一棵以散列表形式存在的查询二叉树C,然后开始读取A表的第一条记录,从C中去查找匹配的记录,如果有,则推到结果集中,再提起A中的第二条记录,如果有,则推到结果集中,以此类推,直到A中没有记录,返回结果集。

sort merge join
假如有A,B两张表进行排序合并连接,oracle 会首先将A表进行排序,形成一张临时的 “表” C, 然后将B进行排序,形成一张临时的“表”D,然后将C与D进行合并操作,返回结果。

你可能感兴趣的:(dba,mysql)