MySQL如何執行關聯查詢

來源:互聯網
上載者:User

標籤:

  MySQL中‘關聯(join)’ 一詞包含的意義比一般意義上理解的要更廣泛。總的來說,MySQL認為任何一個查詢都是一次‘關聯’ --並不僅僅是一個查詢需要到兩個表的匹配才叫關聯,索引在MySQL中,每一個查詢,每一個片段(包括子查詢,設定基於表單的select)都可能是關聯。

  所以,理解MySQL如何執行關聯查詢至關重要。我們先來看一個union 查詢的例子。對於union查詢,MySQL先將一系列的單個查詢結果放到一個暫存資料表中,然後再重新讀出暫存資料表資料來完成union查詢。在MySQL的概念中,每個查詢都是一次關聯,所以讀取結果的暫存資料表也是一次關聯。

  當前MySQL關聯執行的策略很簡單:MySQL對任何關聯都執行嵌套關聯的操作,即MySQL在一個表中迴圈讀出單條資料,然後在嵌套迴圈到下一個表中尋找匹配的行,依次下去,直到找到所有表中匹配的結果未知。然後根據各個表匹配的行,返回查詢中需要的各個列。MySQL會嘗試在最後一個關聯表中找到所有匹配的行,如果最後一個關聯表無法找到更多的行以後,MySQL會返回到上一層關聯表,看是否能夠找到更多的匹配記錄,以此類推迭代執行。

 

MySQL如何執行關聯查詢

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.