简单嵌套循环连接
r为驱动表,s为匹配表,可以看到从r中分别取出每一个记录去匹配s表的列,然
后再合并数据,对s表进行r表的行数次访问,对数据库的开销比较大
索引嵌套循环连接
这个要求非驱动表(匹配表s)上有索引,可以通过索引来减少比较,加速查询。
在查询时,驱动表(r)会根据关联字段的索引进行查找,当在索引上找到符合的值,再回表进行查询,也就是只有当
匹配到索引以后才会进行回表查询。
如果非驱动表(s)的关联键是主键的话,性能会非常高,如果不是主键,要进行多次回表查询,先关联索引,然后根
据二级索引的主键ID进行回表操作,性能上比索引是主键要慢。
缓存块嵌套循环连接
如果有索引,会选取第二种方式进行join,但如果join列没有索引,就会采用Block Nested-Loop
Join。
可以