如图,students 和workmates 两个表的主键均为id,为什么左连接查询的时候workmates的rows=3而不是等于1呢?为什么这时会使用join buffer?
当我们的join是ALL,index,rang或者Index_merge的时候使用的buffer。
实际上这种join被称为FULL JOIN。
实际上参与join的每一个表都需要一个join buffer。
所以在join出现的时候,至少是2个。
join buffer的这只在mysql5.1.23版本之前最大为4G,但是从5.1.23版本开始,再出了windows之外的64为平台上可以超出4GB的限制。
谢谢,我知道了,把b.level删掉就变成eq-ref了