今天上完梁老师的课,感觉表连接的意义非常深刻,知识消化可以转化成Sql优化方面的强力武器!
必须认真记下来!
一、SQL写法上的限制(CBO选择执行计划时的限制)
Nested Loops Jion:无限制
Hash Join:作为经典的等值算法,不支持非等值条件(like、>、<、<>)
Merge Sort Join:支持>、<,不支持like和<>
二、各自特性
表访问次数:
Nested Loops Jion:驱动结果集的条数决定被驱动表的访问次数
Hash Join:两表各自只被访问1次或0次
Merge Sort Join:两表各自只被访问1次或0次
表驱动顺序与性能:
Nested Loops Jion:记录少的表作为驱动表性能更好
Hash Join:记录少的表作为驱动表性能更好
Merge Sort Join:顺序与性能无关
是否排序:
Nested Loops Jion:不排序
Hash Join:不排序但是消耗内存
Merg