欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

MySQL查詢語句執(zhí)行流程是什么

這篇“MySQL查詢語句執(zhí)行流程是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“MySQL查詢語句執(zhí)行流程是什么”文章吧。

10年積累的成都做網站、網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計制作后付款的網站建設流程,更有疊彩免費網站建設讓你可以放心的選擇與我們合作。

架構圖

MySQL查詢語句執(zhí)行流程是什么

解析器

解析器的作用是對客戶端傳來的 SQL 語句進行以下工作:

  • 語法解析:檢查 SQL 語句的語法,括號、引號是否閉合等

  • 詞法解析:把 SQL 語句中的關鍵詞、表名、字段名拆分成一個個節(jié)點,最終得到一顆解析樹

MySQL查詢語句執(zhí)行流程是什么

預處理器

解析器主要是檢查語法詞法方面,但是如果語法詞法都正確,但是表、字段是不存在的,那么這段 SQL 語句也是無法正確執(zhí)行的。

所以預處理器的作用是:語義解析,判斷解析樹的語義是否正確,表、字段這些是否存在,預處理后會得到一顆新的解析樹。

查詢優(yōu)化器

查詢優(yōu)化器結構

MySQL查詢語句執(zhí)行流程是什么

在 MySQL 中一條 SQL 語句的執(zhí)行方式有多種,雖然最終都會得到相同的結果,但是存在開銷上的差異,具體選擇哪一種執(zhí)行方式是由查詢優(yōu)化器來決定的。比如說:

  • 表中有多個索引可以選擇,具體選擇哪一個索引

  • 當我們對多張表進行關聯(lián)查詢時,以哪一張表的數(shù)據(jù)為基準表

查詢優(yōu)化器是基于開銷(cost)的優(yōu)化器,它的工作原理是根據(jù)解析樹生成的多種執(zhí)行計劃,會評估各種執(zhí)行方式所需的開銷(cost),最終會得到一個開銷最小的執(zhí)行計劃作為最終方案。

但是這個開銷最小的執(zhí)行方式不一定是最優(yōu)的執(zhí)行方式,比如本該使用索引,卻進行了全表掃描等。雖然查詢優(yōu)化器中有《優(yōu)化》兩個字,但是這個優(yōu)化并不是萬能的,很多時候更加需要考慮 SQL 語句書寫得是否合理。

邏輯查詢優(yōu)化

邏輯查詢優(yōu)化主要負責進行一些關系代數(shù)對 SQL 語句進行優(yōu)化,從而使 SQL 語句執(zhí)行效率更高

邏輯查詢優(yōu)化我們可以使用幾個案例來簡單理解

  • 子查詢合并

    合并前

    SELECT * FROM t1 WHERE a1<10 AND (
     EXISTS(SELECT a2 FROM t2 WHERE t2.a2<5 AND t2.b2=1) OR
     EXISTS(SELECT a2 FROM t2 WHERE t2.a2<5 AND t2.b2=2)
    );

    合并后

    SELECT * FROM t1 WHERE a1<10 AND (
     EXISTS(SELECT a2 FROM t2 WHERE t2.a2<5 AND (t2.b2=1 OR t2.b2=2)
    );

    把多個子查詢通過合并查詢條件而合并查詢,把多次連接操作減少為單次表掃描和單次連接

  • 等價謂詞重寫

    像我們熟悉的 like 模糊查詢,% 寫在條件后面才會進行索引范圍查詢,其實這是查詢優(yōu)化器的功勞

    假設使用的條件都是有建立索引的,重寫前

    SELECT * FROM USERINFO WHERE name LIKE 'Abc%';

    重寫后

    SELECT * FROM USERINFO WHERE name >= 'Abc' AND name < 'Abd';

    這就是為什么能進行索引范圍查詢的答案

  • 條件簡化

    條件簡化也是利用一些等式、代數(shù)關系來實現(xiàn)簡化

    • 去除表達式中的冗余括號,減少語法分析時產生的AND和OR 樹的層 次,比如 ((a AND b) AND (c AND d)) 簡化為 a AND b AND c AND d

    • 常量傳遞,比如 col1 = col2 AND col2 = 3 簡化為 col1 = 3 AND col2 = 3

    • 表達式計算,對于一些可直接求解的表達式會轉換為最終的計算結果,比如 col1 = 1+2 簡化為 col1 = 3

物理查詢優(yōu)化

物理查詢優(yōu)化主要做的工作是根據(jù) SQL 語句分別對多種執(zhí)行計劃進行開銷的評估

物理查詢優(yōu)化主要解決以下幾個問題:

  • 單表掃描中采用哪種方式是開銷最小的(掃描索引+回表 or 全表掃描)

  • 存在表連接的時候使用哪種連接方式是開銷最小的

簡單了解一下代價評估,代價評估是基于 CPU 代價和 IO 代價兩個維度的

掃描方式代價評估公式
順序掃描N_page * a_page_IO_time + N_tuple * a_tuple_CPU_time
索引掃描C_index + N_page_index * a_page_IO_time

上述參數(shù)說明如下:

  • a_page_IO_time, 一個數(shù)據(jù)頁加載的IO耗時

  • N_page,數(shù)據(jù)頁數(shù)量

  • N_tuple,元組數(shù)(元組理解為一行數(shù)據(jù))

  • a_tuple_CPU_time,一個元組從數(shù)據(jù)頁中解析的CPU耗時

  • C_index,索引的IO耗時

  • N_page_index,索引頁數(shù)量

關于索引成本計算可以參考這篇文章:MySQL查詢?yōu)槭裁催x擇使用這個索引?——基于MySQL 8.0.22索引成本計算

執(zhí)行計劃

執(zhí)行計劃是查詢優(yōu)化器的產物,最終會交給存儲引擎進行執(zhí)行。執(zhí)行計劃可以幫助我們得知 MySQL 會怎么執(zhí)行這條 SQL 語句。

使用 explain 關鍵字查看 SQL 語句的執(zhí)行計劃,可以得到以下信息:

  • id:嵌套查詢中查詢的執(zhí)行順序

  • possible_keys:本次查詢可能用到的索引

  • Key:實際用到的索引

  • rows:得到結果大概要檢索多少行數(shù)據(jù)

  • select_type多表之間的連接類型

  • extra:額外的信息,是否有索引覆蓋、索引下推等

存儲引擎

MySQL 服務端規(guī)定了數(shù)據(jù)如何存儲、如何提取、如何更新的規(guī)范,這個規(guī)范由存儲引擎來實現(xiàn),不同的存儲引擎的實現(xiàn)方式不同,所以不同的存儲引擎會呈現(xiàn)其獨特的功能和特點。其中最常用的存儲引擎是 InnoDB 和 MyISAM

簡單說說這兩款存儲引擎的特點

InnoDB:

  • 支持外鍵、事務,保證了數(shù)據(jù)的完整性和一致性

  • 支持更細的鎖粒度,對鎖的控制更好,讀寫效率更高

MyISAM

  • 不支持事務,只支持行鎖,適合數(shù)據(jù)只讀的場景

存儲引擎方面暫時先不展開,會在其他文章繼續(xù)穿插他們的對比,以及會詳細分析 InnoDB 更新數(shù)據(jù)的流程

以上就是關于“MySQL查詢語句執(zhí)行流程是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享標題:MySQL查詢語句執(zhí)行流程是什么
本文來源:http://aaarwkj.com/article28/gopdcp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、商城網站、小程序開發(fā)、做網站響應式網站、移動網站建設

廣告

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

成都定制網站網頁設計
日本一级特黄大片做受在线观看| 亚洲综合另类小说专区| 欧美中日韩一区二区三区| 国产精品久久一国产精品| 国产剧情av一区在线观看| 精品久久久久久久久无| 精品国产综合一区二区三区| 亚洲欧美极品一区色婷婷| 国产成人av三级在线观看| 在线青青草视频免费观看| 最新国产av网址大全| 97久久久人妻精品一区| 一区二区亚洲成人精品| 午夜少妇诱惑一区二区三区| 丰满少妇在线观看网站| 女同av免费观看网站| 日韩亚洲欧美不卡在线| 婷婷五五月深爱开心激情| 麻豆久久av免费观看| 中文字幕乱码亚洲美女精品| 饥渴少妇高潮露脸嗷嗷叫| 日本三级黄色免费的网站| 欧美一区二区男人天堂| 日本国内一区二区三区四区视频| 免费午夜福利一区二区| 夜夜操狠狠操天天摸| 又黄又爽又刺激的性视频| 在线免费观看国产黄色av| 日韩av一区二区人妻| 久久日韩人妻中文字幕| 中文字幕熟女av一区二区| 久久国产精品av在线观看| 久久不卡高清免费av| 国产三级亚洲三级在线理论| 色综合色狠狠天天综合色| 91在线直播观看高清| 91精品国产色综合久久不| 色婷婷丝袜一区网站| 国产日韩精品免费在线| 成人午夜激情福利动态| 天天精品国产av九九久久久|