Mysql常见的几种算法
1.嵌套循环连接算法(Nested-Loop Join(NLJ))
2.基于索引的嵌套循环连接算法(Index Nested-Loop Join(INLJ))
3.基于块的嵌套循环连接算法...,如果匹配成功,则将数据连接后放入结果集中(就是外层循环的结果和内存结果组合成一条数据),然后,外层的驱动表扫描获取第二条数据,并和被驱动表进行条件匹配,将匹配成功数据连接后放入结果集中,剩余的数据以此类推...基于索引的嵌套循环连接算法(Index Nested-Loop Join (INLJ)
索引嵌套循环连接算法是基于嵌套循环算法的改进版,其优化的思路,主要是为了减少了内层循环匹配次数,就是通过外层数据循环与内存索引数据进行匹配...,这样就避免了内层循环数据逐个与外层循环的数据进行对比,从原来的匹配次数 = 外层所有行数据 * 内层所有行数据 优化成 外层所有行数据 * 索引树的高度,极大的提高的查询效率
SQL案例:
EXPLAIN...,从而减少了外层循环的次数(循环遍历内层表每行数据就会匹配一次Join Buffer里面的外层表数据),当我们不使用Index Nested-Loop Join的时候,默认使用的是Block Nested-Loop