亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql中怎么進行優化器對子查詢的處理

發布時間:2021-10-11 18:22:12 來源:億速云 閱讀:150 作者:柒染 欄目:MySQL數據庫

本篇文章給大家分享的是有關Mysql中怎么進行優化器對子查詢的處理,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。


根據子查詢的類型和位置不同,mysql優化器會對查詢語句中的子查詢采取不同的處理策略,其中包括改寫為連接(join),改寫為半連接(semi-join)及進行物化處理等。

    1. 標量子查詢(Scalar Subquery):查詢語句中的標量子查詢每次只返回一行數據,執行期間優化器能將其優化掉并對其進行緩沖處理。

    2. IN子查詢(唯一)(IN Subquery(Unique)):查詢語句中的子查詢返回唯一數據集,因此,優化器可以將這種子查詢安全的轉換為內連接(inner join)進行處理。explain后執行show warnings應該可以看到這種場景的發生。

    3. IN子查詢(非唯一)(IN Subquery(Non-Unique)):當查詢語句中的子查詢返回非唯一數據集時,此時,優化器并不能將子查詢安全的轉換為內連接,而只能采取其他的處理策略,例如:將子查詢轉換為半連接(Semi-join),而mysql中,執行半連接的策略包括FirstMatch,Materializelookup,Materializescan,DuplicatesWeedout,Loosescan等,每種策略的具體處理細節,大家可以參考相應文檔,此處不再贅述。

    4. NOT IN子查詢(NOT IN子查詢):針對查詢語句中的NOT IN子查詢,mysql優化器可以采取物化處理和轉化為exists兩種策略。

    5. 驅動表(Derived Table):針對查詢語句from子句中的子查詢,mysql優化器并不會對其進行物化處理。而是通常對其進行合并處理(merge),其類似于視圖將其定義與查詢語句的謂詞合并的方法。

    6. CTEs和視圖(CTEs and Views):視圖作為存儲的查詢,可以簡化應用,也可以實現數據安全,而CTEs與視圖類似,只是其生命期僅僅局限于相關查詢語句本身。mysql優化器對CTEs和視圖的處理,主要有兩種策略,那就是合并處理(Merge)和物化處理(Materialize),針對CTEs和視圖,mysql優化器首先嘗試對其進行與主查詢的合并,當某些場景導致其不能與住查詢合并時,才會考慮通過將視圖或CTEs結果通過臨時表進行固化,以供主查詢其他部分進行查詢使用。這點explain后show warings可以看到這些場景的出現。

以上就是Mysql中怎么進行優化器對子查詢的處理,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

溧水县| 浠水县| 兰州市| 宾川县| 吴桥县| 永靖县| 绥江县| 沧州市| 达日县| 益阳市| 三河市| 临漳县| 陆良县| 玉环县| 平武县| 图片| 昌图县| 黄大仙区| 都昌县| 惠水县| 宽甸| 抚宁县| 阿城市| 青阳县| 蓝山县| 平原县| 临武县| 桦南县| 方山县| 民丰县| 合山市| 祁东县| 保定市| 拉孜县| 宣恩县| 桦甸市| 司法| 象州县| 通州市| 延边| 建阳市|