亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

宁陕县| 普兰县| 黄陵县| 博白县| 巧家县| 常德市| 嵩明县| 胶南市| 扬中市| 河北省| 河南省| 都安| 昭通市| 达拉特旗| 榕江县| 新晃| 浦江县| 赤壁市| 麻栗坡县| 盖州市| 南川市| 清河县| 措美县| 镇原县| 白河县| 潼关县| 墨脱县| 西安市| 积石山| 大洼县| 缙云县| 舒城县| 山东| 广西| 承德市| 白朗县| 井冈山市| 昌江| 闽侯县| 南岸区| 锡林浩特市|