Mysql 优化器内部JOIN算法hash join On-Disk Hash Join Grace Hash Join Hybrid hash join过程详解hash join的概述On-Disk Hash JoinGrace Hash JoinHybrid hash joinhash join的伪代码
Mysql 各种hash join算法讲解hash join的概述提到hash join之前自然得说Nest loop join,以两个表的关联为例,它其实是个双层循环,先遍历外层的表(n条),再拿每次对应的值去匹配、循环遍历内部的表(M条)。这样显然会有M*n的计算复杂度。如果能将外部表先装载到内存,然后再做内部表的匹配、遍历,计算的复杂度就会大大降低,这就是hash join的思想。本文继续介绍hash join的其它几个算法On-Disk Hash Join、Grace Hash Join