join走索引的执行过程,也就是NLJ
2021-05-26 10:46:47 0 举报
join语句,走被驱动表的执行过程
作者其他创作
大纲/内容
R1 L1R2 L2R3 L3R4 L4
R1R2R3R4
主键索引树
结果集
表t2
备注:索引a树是一棵二级索引树,该树的非叶子节点存的数据是:a字段的值 和主键的值;主键索引树的非叶子节点存的数据是对应的每一行数据。因为我们是select * 所以在 a 那棵树上面拿不到整行数据,需要在对应的节点拿到主键的值然后去主键索引树上面再次扫描一次才能拿到整行记录,这就是回表。如果我们是select a 或者 主键id ,我们能直接在 a 那棵树上面拿到需要的数据,这样就只需要扫描 a树,不需要再去扫描主键索引树,这是索引覆盖。
读出t1中的全部记录取每一行的a字段的值去t2表的a索引树上匹配
索引 a 树
在索引a树上找到匹配的值,拿到主键id的值,去主键索引上面扫描,也就是回表
a1a2a3a4
表t1
L1L2L3L4
0 条评论
下一页