大致执行流程如下
从t2表中读取一行记录(如果t2表有查询过滤条件,会先执行完过滤条件,再从过滤后结果中取一行记录)
从第1步记录中,取出关联字段 a 到 t1表查找
取出 t1表满足条件的记录与t2中获取到的结果进行合并...,将结果放入结果集
循环上3个步骤,直到无法满足条件,将结果集返回给客户端
整个过程会读取t2表所有数据(100行数据),然后遍历每行数据字段a的值,根据t2表中a的值扫描t1表中对应行数据(扫描100...上面SQL大致执行流程如下
从t2表中读取一行记录
从第1步记录中,取出关联字段 a 到 t1表的辅助索引树中进行查找
从t1表中取出辅助索引树中满足条件的记录拿出主键ID到主键索引中根据主键ID将剩下字段的数据取出与...t2中获取到的结果进行合并,将结果放入结果集
循环上三个步骤,直到无法满足条件,将结果集返回给客户端
特点:基于嵌套循环连接算法进行优化,虽然还是双层循环进行匹配数据,但是内层循环(被驱动表)是使用索引树的高度决定循环次数的...中(默认内存大小为256k,如果数据量多,会进行分段存放,然后进行比较)
把表t1的每一行数据,跟join_buffer中的数据批量进行对比
循环上两个步骤,直到无法满足条件,将结果集返回给客户端
这个例子里表