排序合并连接(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开始扫描,交替的进行扫描、关联。
This works because both relations are sorted and therefore you don’t need to “go back” in these relations.
也就是说:不是从1重新开始扫,而是从2开始扫描