select * from a,b where a.id<=b.id;这个一般都走排序合并连接
排序合并连接(SORTMERGE JOIN)
前文提到嵌套循环以及哈希连接,他们都有驱动表概念。排序合并连接没有驱动表一说,两个表/行源是对等关系。排序合并连接原理是先对两个表/行源根据JOIN列进行排序(当然了排序的时候要踢出不符合where条件的列),然后再进行连接。排序合并连接可以处理非等值JOIN。有时候,出现了非等值JOIN,还非得走SORT MERGEJOIN不可。根据排序合并的原理,我们知道排序合并连接其实很耗费资源,因为要对2个表/结果集进行排序,所以一般情况下,CBO是不会选择走SORTMERGE JOIN的,除非有以下情况:
排序合并连接是个垃圾下面解释下
select * from a, b where a.id>b.id;
A 1000W行
B 500W行