bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

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

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

成都創新互聯專注于企業成都營銷網站建設、網站重做改版、城中網站定制設計、自適應品牌網站建設、H5頁面制作商城網站定制開發、集團公司官網建設、外貿營銷網站建設、高端網站制作、響應式網頁設計等建站業務,價格優惠性價比高,為城中等各大城市提供網站開發制作服務。


根據子查詢的類型和位置不同,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中怎么進行優化器對子查詢的處理,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創新互聯行業資訊頻道。

網頁題目:Mysql中怎么進行優化器對子查詢的處理
文章URL:http://vcdvsql.cn/article0/pdieio.html

成都網站建設公司_創新互聯,為您提供全網營銷推廣網站排名App設計Google靜態網站網站設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司