最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

open內(nèi)核分析(四):查詢重寫

2022-06-20 14:41 作者:Gauss松鼠會  | 我要投稿

查詢重寫

SQL語言是多種語言的,也是多種不同的,不同的不同類型的不同經(jīng)驗的不同,開發(fā)的SQL語句也是各式各樣的,另外SQL語言可以通過數(shù)據(jù)庫的工具自動生成。只是想要的結(jié)果,而不是有趣的數(shù)據(jù),獲取數(shù)據(jù)庫的 SQL 表現(xiàn)形式的語言表達方式,直接包含了一些最佳信息,這些信息可以被使用來查詢查詢把SQL語句轉(zhuǎn)換為用戶輸入的等價查詢,查詢遵循更高效的SQL語句。

  • 等相同:原語句結(jié)果和后價格的語句,輸出。

  • 高效性:后的語句,比原語句在執(zhí)行時間和資源使用上更高效。

實例計算可以優(yōu)化既定式可以基于關(guān)系的代查詢優(yōu)化,例如詞下推、子查詢等,也可以根據(jù)查詢規(guī)則進行優(yōu)化,例如外部連接、連接查詢等。查詢是基于規(guī)則的查詢表邏輯優(yōu)化。

在代碼形式中,查詢查詢的架構(gòu):

下連接外連接外2連接外連接外連接或外連接連接轉(zhuǎn)右外連接過程:在外連接中,如果查詢條件中邏輯上能夠包含IS NOT,c1 > 0,可以將查詢轉(zhuǎn)換成INNER JOIN,從而減少關(guān)聯(lián)處理產(chǎn)生中間結(jié)果集。

外連接去掉Outer2Inner

下面首先以一個例子來說明各種多表連接方式的區(qū)別:

內(nèi)連接內(nèi)連接:返回兩個表都滿足的組合,相當(dāng)于取兩個表的交集。

左連接左外連接:返回左表中的所有行,如果左表中行在右表中沒有匹配行,則結(jié)果中右表中的列返回空值。

右連接右外連接:返回右表中的所有行,如果右表中行在左表中沒有匹配行,則結(jié)果中左表中的列返回空值。

連接全連接:表和右表中的所有行。當(dāng)某行返回左表中沒有匹配行時,則另一個中列空值,取兩個表并集。

在以上實驗的基礎(chǔ)上增加t2表的where條件。

left join和inner join的結(jié)果是一樣的,這是因為查詢條件中包含WHERE t2.c2 >100這個條件,t2表所有不匹配查詢元組均被掉(包括空值過濾),因此可以進行轉(zhuǎn)換left -outer join>inner join,能夠產(chǎn)生有效的t1和t2關(guān)聯(lián)產(chǎn)生結(jié)果集,達到性能提升的目的。

在數(shù)據(jù)庫系統(tǒng)中,查看是否有 RTE_JOIN 類型的節(jié)點存在,設(shè)置是否有 RTE_JOIN 類型的節(jié)點,在數(shù)據(jù)庫系統(tǒng)中,直接進入到reduce_outer_joins接口,滿足外部連接時再執(zhí)行連接的刪除。reduce_outer_Joins函數(shù)內(nèi)部做兩個動作:

(1)reduce_outer_joins_pass1采集檢查,就是jointree中帶有外鏈接,以及表的信息,為動作是否參考2個參考資料_1準(zhǔn)備好,重點結(jié)構(gòu)reduce_outer_joins_state;

(2)reduce_outer_joins_pass2真正完成刪除外鏈接。

上一棵樹的內(nèi)存結(jié)構(gòu)(樹結(jié)構(gòu)中目標(biāo)的方法,目標(biāo)的目標(biāo)表存儲結(jié)果的分析結(jié)果,rtable 存儲存儲表的結(jié)果表)表達式樹)

對比reduce_outer_joins運行前后查詢樹,jointree和rtable中的jointype都由join_left轉(zhuǎn)換為join_inner,即外連接已轉(zhuǎn)為內(nèi)連接。



open內(nèi)核分析(四):查詢重寫的評論 (共 條)

分享到微博請遵守國家法律
盘锦市| 霍林郭勒市| 安顺市| 乌鲁木齐市| 蕉岭县| 定西市| 牙克石市| 尼勒克县| 海兴县| 石屏县| 铜鼓县| 镇远县| 寻乌县| 台湾省| 渑池县| 淄博市| 清流县| 瓦房店市| 松潘县| 博客| 梨树县| 化州市| 昂仁县| 丰宁| 武邑县| 延津县| 阳山县| 汾阳市| 简阳市| 景泰县| 平山县| 滦平县| 台东县| 遂平县| 遵义市| 巴中市| 渑池县| 阿拉善右旗| 曲松县| 元阳县| 扬州市|