MySQL 在什么情况下用NLJ,什么情况下用BNL? 这两种算法有什么优点?谢谢

解决方案 »

  1.   


    你可以看看这个:Nested-Loop Join Algorithms
    http://blog.csdn.net/ghsau/article/details/43762027
      

  2.   


    文章并没有说具体的优缺点,但是总结一下,无非就是 :嵌套循环join:是每次匹配1行,匹配速度较慢,需要的内存较少。块嵌套循环join:是每次匹配多行,也就是一个块的数据,所以匹配较快,但是要消耗额外的内存。但是总体上来说,嵌套循环join还是比较适合于 内层表有索引的情况,因为如果没有索引,再用块匹配,其实也很慢。