排序合併連線(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開始掃描