文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  巢狀迴圈聯結演算法

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 演算法會一次將列從外部迴圈傳遞到內部迴圈,因此它通常會多次讀取在內部迴圈中處理的資料表。