Chinaunix首页 | 论坛 | 博客
  • 博客访问: 151010
  • 博文数量: 12
  • 博客积分: 226
  • 博客等级: 二等列兵
  • 技术积分: 221
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-10 23:15
文章分类

全部博文(12)

分类: Mysql/postgreSQL

2012-11-16 13:50:18

参考:

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的思想,类似于深度优先遍历

根据参考博客和源码做的总结,小记一下!

阅读(3817) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~