91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

郓城县| 淮阳县| 白朗县| 清水河县| 新建县| 郸城县| 牡丹江市| 出国| 祥云县| 襄垣县| 正镶白旗| 伊金霍洛旗| 左云县| 扶余县| 贺兰县| 泾阳县| 综艺| 富源县| 宣化县| 四平市| 兴山县| 太湖县| 五台县| 威宁| 华容县| 漯河市| 岱山县| 郎溪县| 延庆县| 云浮市| 怀仁县| 衡阳市| 泸水县| 时尚| 东海县| 广汉市| 绥化市| 电白县| 铜川市| 改则县| 志丹县|