91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

炉霍县| 安西县| 宜君县| 渭南市| 朝阳市| 周口市| 德阳市| 津南区| 泾源县| 衡阳市| 富锦市| 墨竹工卡县| 花垣县| 滨海县| 湖南省| 塘沽区| 嵊泗县| 武功县| 邢台县| 曲阜市| 呼伦贝尔市| 会宁县| 盱眙县| 盐亭县| 潞西市| 澄江县| 五台县| 宁城县| 澳门| 大化| 肥东县| 农安县| 迭部县| 施秉县| 东明县| 木兰县| 文山县| 大田县| 麻阳| 高邮市| 吐鲁番市|