Blocked Nested Loop Join

Nested Loop Join 的一个优化变种是 Blocked Nested Loop Join,它每次从外表中读取一个块大小的行,然后再去扫描内表找到满足条件的数据,这样可以减少内表的读取次数。

问题:
它减少了对内表的读取次数 ? why ?
比如,外表有100个块,你每次读取1块,那外表总共也是要100次的啥 ?

Nested Loop Join:是外表有多少行,决定内表要被循环多少次。
Blocked Nested Loop Join: 引入了join buffer,极限思想,join buffer足够大,可以容纳外表数据,那么内表只需要被循环1次,join buffer正常都不会太小,否则失去了意义,当这里的block join buffer容纳的外表行数越多,内表需要循环扫描的次数就越少。