BNLJ的问题

来源:3-1 JOIN语句优化1-JOIN种类、算法与原理-1

Tristeza

2021-03-25 21:16:21

我感觉BNLJ中的join buffer和内层表匹配的过程应该不是像伪代码写的那样要循环一次buffer吧,这样就跟不用buffer没啥区别了?感觉这个buffer里面应该是hash之类的数据结构,只需要循环一次内层表就能把buffer中的外层表全匹配上?

http://img.mukewang.com/climg/605c8cd609b7dd2320960976.jpg

写回答

1回答

大目

2021-03-26

额,您好,首先这段伪代码来自mysql官方文档,有错误的可能性不太大。
第二是,内层循环的条件是join buffer满了才会进哈

1
hristeza
hp>我好像明白了,在buffer足够大的时候,是会把时间复杂度从O(n^3)降到2*O(n^2)是么

h021-03-26
共2条回复

Java架构师-技术专家

千万级电商项目从0到100全过程,覆盖Java程序员不同成长阶段的核心问题与解决方案

2672 学习 · 5839 问题

查看课程