中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Mysql執行計劃原理是怎樣的呢

發布時間:2021-12-03 17:55:32 來源:億速云 閱讀:117 作者:柒染 欄目:云計算

這篇文章將為大家詳細講解有關Mysql執行計劃原理是怎樣的呢,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

    Mysql性能優化,從一名高級碼農的角度,我們不能像java語言一樣,通過debug來調試我們的業務SQL,那么我們怎么去驗證優化之后的SQL語義呢,那么就是執行計劃。

    執行計劃所包含的角色:

  • ORM框架

  • 連接池

  • Mysql Server

  • 存儲引擎

   那么負責生成執行計劃的組件是什么?

   回答:專門負責優化SELECT語句的優化器模塊MySQL Query Optimizer通過計算分析收集的各種系統統計信息,為Query給出最優的執行計劃——最優的數據檢索方式。

   MySQL Query Optimizer位于Mysql Server端,是Mysql自有的,與存儲引擎無關。

  當MySQL Query Optimizer接收到Query Parser(解析器)傳遞過來的Query時,會根據MySQL Query語句的相應語法對該Query進行分解分析,同時還會做很多其他的計算轉化工作,如常量轉化,無效內容刪除,常量計算等。

   MySQL Query Tree以Tree類型的數據結構存放數據處理的流程,指明了完成Query必須要經過的步驟,每一步的數據來源在哪里,處理方式是怎樣的。MySQL使用了LEX和YACC語法(詞法)分析工具生成MySQL Query Tree。

   客戶端向MySQL發送Query請求,命令解析器模塊完成請求分類,把SELECT Query轉發給MySQL Query Optimizer,MySQL Query Optimizer首先會對整條Query進行優化,進行常量表達式的預算,直接換算成常量值。并對Query中的查詢條件進行簡化和轉換,如去掉一些無用或顯而易見的條件、結構調整等。然后分析Query中的Hint信息(如果有),看Hint信息是否可以完全確定該Query的執行計劃。如果沒有Hint或Hint信息還不足以完全確定執行計劃,則會讀取所涉及對象的統計信息,根據Query進行相應的計算分析,最后得出執行計劃。

   比較籠統的總結,Mysql會將整個客戶端傳過來的SQL語句,生成一顆指令樹( MySQL Query Tree),然后通過存儲引擎執行這顆指令樹,最終的執行計劃會包含了重構查詢語句的全部信息,也就是Mysql的多表查詢會從一個表開始一直嵌套循環、回溯完成所有表關聯,本質上會是一顆左側深度優先樹。

關于Mysql執行計劃原理是怎樣的呢就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

榆社县| 聊城市| 晋江市| 偃师市| 云霄县| 阿城市| 民乐县| 武冈市| 淮南市| 航空| 四平市| 临沧市| 抚松县| 临高县| 泌阳县| 东明县| 华亭县| 平山县| 遵义市| 衢州市| 合山市| 丹棱县| 日喀则市| 河北区| 双城市| 甘肃省| 东安县| 惠来县| 淮南市| 屏东市| 湘潭县| 福安市| 玉田县| 岳普湖县| 汝州市| 报价| 霍州市| 南开区| 赤水市| 门源| 博白县|