文档首页
MySQL 8.4 参考手册
相关文档 下载此手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  嵌套循环连接算法

10.2.1.7 嵌套循环连接算法

MySQL 使用嵌套循环算法或其变体来执行表之间的连接。

嵌套循环连接算法

简单的嵌套循环连接 (NLJ) 算法一次读取一个表的第一张表的行,将每行传递给处理连接中下一个表的嵌套循环。此过程重复进行,直到剩余所有要连接的表。

假设要执行三个表 t1t2t3 之间的连接,使用以下连接类型

Table   Join Type
t1      range
t2      ref
t3      ALL

如果使用简单的 NLJ 算法,连接将按以下方式处理

for each row in t1 matching range {
  for each row in t2 matching reference key {
    for each row in t3 {
      if row satisfies join conditions, send to client
    }
  }
}

由于 NLJ 算法一次从外部循环传递一行到内部循环,因此它通常多次读取在内部循环中处理的表。