亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL執行計劃的深入分析

2024-07-25 19:09:29
字體:
來源:轉載
供稿:網友

前言

在之前的面試過程中,問到執行計劃,有很多童鞋不知道是什么?甚至將執行計劃與執行時間認為是同一個概念。今天我們就一起來了解一下執行計劃到底是什么?有什么用途?

執行計劃是什么?

執行計劃,簡單的來說,是SQL在數據庫中執行時的表現情況,通常用于SQL性能分析,優化等場景。

一. 執行計劃能告訴我們什么?

  • SQL如何使用索引
  • 聯接查詢的執行順序
  • 查詢掃描的數據函數

二. 執行計劃中的內容

MySQL,執行計劃

SQL執行計劃的輸出可能為多行,每一行代表對一個數據庫對象的操作

1. ID列

  • ID列中的如果數據為一組數字,表示執行SELECT語句的順序;如果為NULL,則說明這一行數據是由另外兩個SQL語句進行 UNION操作后產生的結果集
  • ID值相同時,說明SQL執行順序是按照顯示的從上至下執行的
  • ID值不同時,ID值越大代表優先級越高,則越先被執行

演示

MySQL,執行計劃

可以看到上面的執行計劃返回了3行結果,id列的值可以看作是SQL中所具有的SELECT操作的序號

由于上述SQL中只有一個SELECT,所以id全為1,因此,我們就要按照由上至下讀取執行計劃

按照我們的SQL語句,我們會認為執行順序是a,b,c,但是通過上圖可以發現,Mysql并不是完成按照SQL中所寫的順序來進行表的關聯操作的

執行對表的執行順序為a,c,b,這是由于MySQL優化器會根據表中的索引的統計信息來調整表關聯的實際順序

2. SELECT_TYPE列

 

含義
SIMPLE 不包含子查詢或是UNION操作的查詢
PRIMARY 查詢中如果包含任何子查詢,那么最外層的查詢則被標記為PRIMARY
SUBQUERY SELECT 列表中的子查詢
DEPENDENT SUBQUERY 依賴外部結果的子查詢
UNION Union操作的第二個或是之后的查詢的值為union
DEPENDENT UNION 當UNION作為子查詢時,第二或是第二個后的查詢的select_type值
UNION RESULT UNION產生的結果集
DERIVED 出現在FROM子句中的子查詢

 

3. TABLE列

包含以下幾種結果:

輸出去數據行所在表的名稱,如果表取了別名,則顯示的是別名
<union M,N>: 由ID為M,N查詢union產生的結果集
<derived N>/<subquery N> :由ID為N的查詢產生的結果

4. PARTITIONS列:

查詢匹配的記錄來自哪一個分區
對于分區表,顯示查詢的分區ID
對于非分區表,顯示為NULL

5. TYPE列

按性能從高至低排列如下:

 

含義
system 這是const聯接類型的一個特例,當查詢的表只有一行時使用
const 表中有且只有一個匹配的行時使用,如對主鍵或是唯一索引的查詢,這是效率最高的聯接方式
eq_ref 唯一索引或主鍵索引查詢,對應每個索引鍵,表中只有一條記錄與之匹配
ref 非唯一索引查找,返回匹配某個單獨值的所有行
ref_or_null 類似于ref類型的查詢,但是附加了對NULL值列的查詢
index_merge 該聯接類型表示使用了索引合并優化方法
range 索引范圍掃描,常見于between、>、<這樣的查詢條件
index FULL index Scan 全索引掃描,同ALL的區別是,遍歷的是索引樹
ALL FULL TABLE Scan 全表掃描,這是效率最差的聯接方式

 

6. Extra列

包含MySQL如何執行查詢的附加信息

 

含義
Distinct 優化distinct操作,在找到第一個匹配的元素后即停止查找
Not exists 使用not exists來優化查詢
Using filesort 使用額外操作進行排序,通常會出現在order by或group by查詢中
Using index 使用了覆蓋索引進行查詢
Using temporary MySQL需要使用臨時表來處理查詢,常見于排序,子查詢,和分組查詢
Using where 需要在MySQL服務器層使用WHERE條件來過濾數據
select tables optimized away 直接通過索引來獲得數據,不用訪問表,這種情況通常效率是最高的

 

7. POSSIBLE_KEYS列

指出MySQL能使用哪些索引來優化查詢

查詢列所涉及到的列上的索引都會被列出,但不一定會被使用

8. KEY列

查詢優化器優化查詢實際所使用的索引

如果表中沒有可用的索引,則顯示為NULL

如果查詢使用了覆蓋索引,則該索引僅出現在Key列中

9. KEY_LEN列

顯示MySQL索引所使用的字節數,在聯合索引中如果有3列,假如3列字段總長度為100個字節,Key_len顯示的可能會小于100字節,比如30字節,這就說明在查詢過程中沒有使用到聯合索引的所有列,只是利用到了前面的一列或2列

  • 表示索引字段的最大可能長度
  • Key_len的長度由字段定義計算而來,并非數據的實際長度

10. Ref列

表示當前表在利用Key列記錄中的索引進行查詢時所用到的列或常量

11. rows列

  • 表示MySQL通過索引的統計信息,估算出來的所需讀取的行數(關聯查詢時,顯示的是每次嵌套查詢時所需要的行數)
  • Rows值的大小是個統計抽樣結果,并不十分準確

12. Filtered列

  • 表示返回結果的行數占需讀取行數的百分比
  • Filtered列的值越大越好(值越大,表明實際讀取的行數與所需要返回的行數越接近)
  • Filtered列的值依賴統計信息,所以同樣也不是十分準確,只是一個參考值

三. 執行計劃的限制

  • 無法展示存儲過程,觸發器,UDF對查詢的影響
  • 無法使用EXPLAIN對存儲過程進行分析
  • 早期版本的MySQL只支持對SELECT語句進行分析

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人免费小视频| 国产精彩精品视频| 欧美精品第一页在线播放| 日韩精品高清在线观看| www国产亚洲精品久久网站| 91精品国产成人www| 日韩精品中文字幕视频在线| 亚洲国产精品视频在线观看| 亚洲va电影大全| 国产视频精品久久久| 8090理伦午夜在线电影| 久久久久久国产免费| 国产精品久久99久久| 91在线视频免费| 精品中文字幕久久久久久| 97国产成人精品视频| 亚洲欧美精品一区二区| 亚洲品质视频自拍网| www日韩欧美| 久久人人爽人人爽人人片av高请| 国产成人在线亚洲欧美| 日韩精品中文字幕在线播放| 国产视频久久网| 亚洲精品电影在线观看| 日韩成人在线播放| 伊是香蕉大人久久| 日韩在线观看免费全| 国内精品久久久| 久久亚洲影音av资源网| 国产日韩欧美夫妻视频在线观看| 97人人爽人人喊人人模波多| 狠狠躁夜夜躁人人躁婷婷91| 久久五月情影视| 亚洲欧美一区二区精品久久久| 国产v综合v亚洲欧美久久| 91香蕉嫩草神马影院在线观看| 在线电影av不卡网址| 亚洲一区二区免费| 国产欧美婷婷中文| 日韩高清免费观看| 国产xxx69麻豆国语对白| 在线观看日韩视频| 日韩av资源在线播放| 一区二区三区国产视频| 午夜精品久久久久久久99黑人| 国产精品久久久久久久久男| 国产亚洲一区二区在线| 国产精品大片wwwwww| 日韩视频在线免费| 自拍亚洲一区欧美另类| 国产精品99久久久久久白浆小说| 久久视频在线直播| 亚洲综合日韩在线| 日韩中文字在线| 久久久电影免费观看完整版| 欧美日韩激情小视频| 日韩精品免费电影| 欧美高清视频免费观看| zzijzzij亚洲日本成熟少妇| 九九热精品视频| 久久精品国亚洲| 精品视频偷偷看在线观看| 91精品久久久久久久久久| 色一区av在线| 日韩av在线影院| 欧美国产日韩一区| 亚洲自拍偷拍第一页| 欧美日韩国产成人在线观看| 永久免费毛片在线播放不卡| 午夜精品美女自拍福到在线| 青青精品视频播放| 日韩欧美国产视频| 午夜精品久久久久久99热| 97免费在线视频| 国产一区二区av| 日韩av在线网| 美女黄色丝袜一区| 亚洲精品综合久久中文字幕| 国产一区二区视频在线观看| 成人午夜激情网| 欧洲中文字幕国产精品| 欧美大尺度在线观看| 国产最新精品视频| 国产精品亚洲视频在线观看| 国产日产久久高清欧美一区| 久久国产加勒比精品无码| 亚洲人成网站在线播| 欧美一级大片视频| 久久久久久久久久婷婷| 91麻豆国产语对白在线观看| 欧美激情精品久久久久久蜜臀| 最近中文字幕2019免费| 91沈先生在线观看| 热re91久久精品国99热蜜臀| www.99久久热国产日韩欧美.com| 国产精品1区2区在线观看| 欧美激情第1页| 国产一区二区在线播放| 亚洲欧美精品中文字幕在线| 欧美高清不卡在线| 秋霞午夜一区二区| 欧美午夜www高清视频| 亚洲精品久久久久久久久久久久| 欧美巨乳美女视频| 国产午夜精品麻豆| 九九九久久久久久| 91系列在线观看| 久久精品国产久精国产一老狼| 国产精品一区二区久久| 精品国内亚洲在观看18黄| 中文字幕亚洲无线码在线一区| 欧美黑人巨大xxx极品| 久久av红桃一区二区小说| 久久精品国产欧美亚洲人人爽| 亚洲精品福利免费在线观看| 精品国产鲁一鲁一区二区张丽| 亚洲成年人在线| 国产精品一区二区三区毛片淫片| 久久久久久av| 久久视频这里只有精品| 91欧美精品成人综合在线观看| 一区三区二区视频| 亚洲午夜精品久久久久久性色| 欧美成人午夜激情| 亚洲美女精品成人在线视频| 成人福利网站在线观看| 欧美日韩免费在线| 国产精品美女呻吟| 欧美xxxx做受欧美| 国产亚洲精品一区二555| 综合国产在线观看| 日韩欧美精品免费在线| 亚洲最大的成人网| 日韩欧美第一页| 中文字幕精品www乱入免费视频| 国产精品旅馆在线| 日韩精品欧美国产精品忘忧草| 久久影视电视剧免费网站清宫辞电视| 欧美激情精品久久久久久黑人| 国产视频久久网| 色偷偷噜噜噜亚洲男人| 久久精品免费电影| 欧亚精品在线观看| 国产精品美女久久久久av超清| 国产91精品在线播放| 国产在线视频一区| 欧美日韩亚洲系列| 91国产精品91| 国产va免费精品高清在线观看| www.亚洲男人天堂| 91亚洲精品一区二区| 中文字幕av一区| 亚洲欧美国内爽妇网| 欧美日韩在线一区| 美日韩丰满少妇在线观看| 日韩欧美成人精品| 久久久精品在线| 亚洲福利视频在线| 国产91|九色| 亚洲一区第一页| 国产黑人绿帽在线第一区| 亚洲毛片在线看| 亚洲男子天堂网| 国产精品免费小视频|