連線 (SQL)操作是資料庫管理中重要的一環,而嵌套循環連線是通過嵌套的循環語句把多個表連線起來的簡單算法,但是效率並不理想。
基本介紹
- 中文名:嵌套循環連線
- 外文名:Nested loop join
簡介,算法內容,改進方法,
簡介
連線 (SQL)操作是資料庫管理中重要的一環,而嵌套循環連線是通過嵌套的循環語句把多個表連線起來的簡單算法,但是效率並不理想。
算法內容
兩個關係資料庫表R和S通過如下的方法連線在一起:
For each tuple r in R do For each tuple s in S do If r and s satisfy the join condition Then output the tuple <r,s>
這種算法將會從硬碟中讀取 nr*bs+ br個頁, br和bs是R和S表所占用的頁的個數, nr是R表中的記錄數。
改進方法
這種算法可以通過更改循環的嵌套方式減少硬碟的訪問次數到br*bs+ br次。 對於R表的每一頁,S的每一個記錄只需要被讀一次。
For each block block_r in R do For each tuple s in S do For each tuple r in block_r do If r and s satisfy the join condition Then output the tuple <r,s>