真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Mysql中怎么進行優(yōu)化器對子查詢的處理

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

成都創(chuàng)新互聯(lián)專注于企業(yè)成都營銷網(wǎng)站建設、網(wǎng)站重做改版、城中網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5頁面制作、商城網(wǎng)站定制開發(fā)、集團公司官網(wǎng)建設、外貿(mào)營銷網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為城中等各大城市提供網(wǎng)站開發(fā)制作服務。


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

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

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

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

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

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

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

以上就是Mysql中怎么進行優(yōu)化器對子查詢的處理,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當前名稱:Mysql中怎么進行優(yōu)化器對子查詢的處理
鏈接地址:http://weahome.cn/article/pdieio.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部