参考:
MySQL join实现的是nest-loop
通过三个函数完成:do_select, sub_select, evaluate_join_record
sub_select是一个递归函数,也就是其实现了nest-loop算法
join(JOIN)包含了一个join_tab(JOIN_TAB)链,用来保存所有需要连接的表以及其它信息
每个join_tab中有一个next_select的函数指针成员,对于join中的最后一个join_tab, next_select=end_select,而其它的join_tabe,其next_select=sub_select
这正是nest loop的思想,类似于深度优先遍历
根据参考博客和源码做的总结,小记一下!
阅读(3966) | 评论(0) | 转发(0) |