排序合并连接(sort merge join)的原理

时间:2024-05-07 22:05:43

排序合并连接(sort merge join)的原理

排序合并连接(sort merge join)的原理
排序合并连接(sort merge join)
    访问次数:两张表都只会访问0次或1次。
    驱动表是否有顺序:无。
    是否要排序:是。
    应用场景:当结果集已经排过序。
排序合并连接原理:如果A表的数据为(2,1,4,5,2),B表的数据为(2,2,1,3,1) ,首先将A表和B表全扫描后排序,如下:
              A    B
              1     1
              2     1
              2     2
              4     2
              5     3
因为没有驱动表,所以数据库会随机选择一张表驱动,如果选择了A扫描到1,然后扫描B,当扫描=1的时候则匹配
当扫描到B=2时,再以B=2为驱动扫描A表,不是从1开始扫,而是从2开始扫描,交替的进行扫描、关联。
排序合并连接(sort merge join)的原理
This works because both relations are sorted and therefore you don’t need to “go back” in these relations.
也就是说:不是从1重新开始扫,而是从2开始扫描