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

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySql中如何使用 explain 查詢 SQL 的執(zhí)行計劃

2024-07-25 19:08:22
字體:
供稿:網(wǎng)友

mysql/51902.html">explain命令是查看查詢優(yōu)化器如何決定執(zhí)行查詢的主要方法。

這個功能有局限性,并不總會說出真相,但它的輸出是可以獲取的最好信息,值得花時間去了解,因為可以學(xué)習(xí)到查詢是如何執(zhí)行的。

1、什么是MySQL執(zhí)行計劃

       要對執(zhí)行計劃有個比較好的理解,需要先對MySQL的基礎(chǔ)結(jié)構(gòu)及查詢基本原理有簡單的了解。

        MySQL本身的功能架構(gòu)分為三個部分,分別是 應(yīng)用層、邏輯層、物理層,不只是MySQL ,其他大多數(shù)數(shù)據(jù)庫產(chǎn)品都是按這種架構(gòu)來進行劃分的。

應(yīng)用層,主要負責(zé)與客戶端進行交互,建立鏈接,記住鏈接狀態(tài),返回數(shù)據(jù),響應(yīng)請求,這一層是和客戶端打交道的。

邏輯層,主要負責(zé)查詢處理、事務(wù)管理等其他數(shù)據(jù)庫功能處理,以查詢?yōu)槔?nbsp;       

        首先接收到查詢SQL之后,數(shù)據(jù)庫會立即分配一個線程對其進行處理,第一步查詢處理器會對SQL查詢進行優(yōu)化,優(yōu)化后會生成執(zhí)行計劃,然后交由計劃執(zhí)行器來執(zhí)行。

        計劃執(zhí)行器需要訪問更底層的事務(wù)管理器,存儲管理器來操作數(shù)據(jù),他們各自的分工各有不同,最終通過調(diào)用物理層的文件獲取到查詢結(jié)構(gòu)信息,將最終結(jié)果響應(yīng)給應(yīng)用層。

物理層,實際物理磁盤上存儲的文件,主要有分文數(shù)據(jù)文件,日志文件。   

        通過上面的描述,生成執(zhí)行計劃是執(zhí)行一條SQL必不可少的步驟,一條SQL性能的好壞,可以通過查看執(zhí)行計劃很直觀的看出來,執(zhí)行計劃提供了各種查詢類型與級別,方面我們進行查看以及為作為性能分析的依據(jù)。 

2、如何分析執(zhí)行計劃

     MySQL為我們提供了 explain 關(guān)鍵字來直觀的查看一條SQL的執(zhí)行計劃。

     explain顯示了MySQL如何使用索引來處理select語句以及連接表,可以幫助選擇更好的索引和寫出更優(yōu)化的查詢語句。

      下面我們使用 explain 做一個查詢,如下:

mysql> explain select * from payment;+----+-------------+---------+------------+------+---------------+------+---------+------+-------+----------+-------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+-------------+---------+------------+------+---------------+------+---------+------+-------+----------+-------+| 1 | SIMPLE  | payment | NULL  | ALL | NULL   | NULL | NULL | NULL | 16086 | 100.00 | NULL |+----+-------------+---------+------------+------+---------------+------+---------+------+-------+----------+-------+1 row in set, 1 warning (0.01 sec)

        查詢結(jié)構(gòu)中有12列,理解每一列的含義,對理解執(zhí)行計劃至關(guān)重要,下面用一個表格的形式進行說明。

 

列名 說明
id SELECT識別符,這是SELECT的查詢序列號。
select_type

SELECT類型,可以為以下任何一種:

  • SIMPLE:簡單SELECT(不使用UNION或子查詢)

  • PRIMARY:最外面的SELECT

  • UNION:UNION中的第二個或后面的SELECT語句

  • DEPENDENT UNION:UNION中的第二個或后面的SELECT語句,取決于外面的查詢

  • UNION RESULT:UNION 的結(jié)果

  • SUBQUERY:子查詢中的第一個SELECT

  • DEPENDENT SUBQUERY:子查詢中的第一個SELECT,取決于外面的查詢

  • DERIVED:導(dǎo)出表的SELECT(FROM子句的子查詢)

table 輸出的行所引用的表
partitions 如果查詢是基于分區(qū)表的話,顯示查詢將訪問的分區(qū)。
type

聯(lián)接類型。下面給出各種聯(lián)接類型,按照從最佳類型到最壞類型進行排序:

  • system:表僅有一行(=系統(tǒng)表)。這是const聯(lián)接類型的一個特例。

  • const:表最多有一個匹配行,它將在查詢開始時被讀取。因為僅有一行,在這行的列值可被優(yōu)化器剩余部分認為是常數(shù)。const表很快,因為它們只讀取一次!

  • eq_ref:對于每個來自于前面的表的行組合,從該表中讀取一行。這可能是最好的聯(lián)接類型,除了const類型。

  • ref:對于每個來自于前面的表的行組合,所有有匹配索引值的行將從這張表中讀取。

  • ref_or_null:該聯(lián)接類型如同ref,但是添加了MySQL可以專門搜索包含NULL值的行。

  • index_merge:該聯(lián)接類型表示使用了索引合并優(yōu)化方法。

  • unique_subquery:該類型替換了下面形式的IN子查詢的ref: value IN (SELECT primary_key FROM single_table WHERE some_expr) unique_subquery是一個索引查找函數(shù),可以完全替換子查詢,效率更高。

  • index_subquery:該聯(lián)接類型類似于unique_subquery。可以替換IN子查詢,但只適合下列形式的子查詢中的非唯一索引: value IN (SELECT key_column FROM single_table WHERE some_expr)

  • range:只檢索給定范圍的行,使用一個索引來選擇行。

  • index:該聯(lián)接類型與ALL相同,除了只有索引樹被掃描。這通常比ALL快,因為索引文件通常比數(shù)據(jù)文件小。

  • ALL:對于每個來自于先前的表的行組合,進行完整的表掃描,說明查詢就需要優(yōu)化了。

一般來說,得保證查詢至少達到range級別,最好能達到ref。

possible_keys 指出MySQL能使用哪個索引在該表中找到行
key 顯示MySQL實際決定使用的鍵(索引)。如果沒有選擇索引,鍵是NULL。
key_len 顯示MySQL決定使用的鍵長度。如果鍵是NULL,則長度為NULL。在不損失精確性的情況下,長度越短越好
ref 顯示使用哪個列或常數(shù)與key一起從表中選擇行。
rows 顯示MySQL認為它執(zhí)行查詢時必須檢查的行數(shù)。多行之間的數(shù)據(jù)相乘可以估算要處理的行數(shù)。
filtered 顯示了通過條件過濾出的行數(shù)的百分比估計值。
Extra

該列包含MySQL解決查詢的詳細信息

  • Distinct:MySQL發(fā)現(xiàn)第1個匹配行后,停止為當(dāng)前的行組合搜索更多的行。

  • Select tables optimized away MySQL根本沒有遍歷表或索引就返回數(shù)據(jù)了,表示已經(jīng)優(yōu)化到不能再優(yōu)化了

  • Not exists:MySQL能夠?qū)Σ樵冞M行LEFT JOIN優(yōu)化,發(fā)現(xiàn)1個匹配LEFT JOIN標準的行后,不再為前面的的行組合在該表內(nèi)檢查更多的行。

  • range checked for each record (index map: #):MySQL沒有發(fā)現(xiàn)好的可以使用的索引,但發(fā)現(xiàn)如果來自前面的表的列值已知,可能部分索引可以使用。

  • Using filesort:MySQL需要額外的一次傳遞,以找出如何按排序順序檢索行,說明查詢就需要優(yōu)化了。

  • Using index:從只使用索引樹中的信息而不需要進一步搜索讀取實際的行來檢索表中的列信息。

  • Using temporary:為了解決查詢,MySQL需要創(chuàng)建一個臨時表來容納結(jié)果,說明查詢就需要優(yōu)化了。

  • Using where:WHERE 子句用于限制哪一個行匹配下一個表或發(fā)送到客戶。

  • Using sort_union(...), Using union(...), Using intersect(...):這些函數(shù)說明如何為index_merge聯(lián)接類型合并索引掃描。

  • Using index for group-by:類似于訪問表的Using index方式,Using index for group-by表示MySQL發(fā)現(xiàn)了一個索引,可以用來查 詢GROUP BY或DISTINCT查詢的所有列,而不要額外搜索硬盤訪問實際的表。

 

總結(jié)

以上所述是小編給大家介紹的MySql中如何使用 explain 查詢 SQL 的執(zhí)行計劃,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
亚洲高清资源综合久久精品| 国产mv免费观看入口亚洲| 午夜小视频在线| 久久不射2019中文字幕| 成人在线观看亚洲| 国产精品色午夜在线观看| 免费网站在线高清观看| 国产成人禁片在线观看| 成人国产在线视频| av首页在线观看| 免费观影入口看日本视频| 国产午夜精品福利| 欧美日韩久久一区二区| 水蜜桃久久夜色精品一区| 忘忧草在线www成人影院| 欧美在线3区| 久久久久久a亚洲欧洲aⅴ| www.av一区视频| 久久精品主播| 内射后入在线观看一区| 91精品国产欧美一区二区成人| 加勒比一区二区| 丰满少妇一区二区三区专区| 欧美国产专区| 亚洲裸体xxxx| 国产羞羞视频在线观看| 国产91精品一区二区绿帽| 日韩欧美国产成人| 色成人亚洲网| 另类春色校园亚洲| 中文字字幕在线中文乱码电影| 国产精品成人一区二区不卡| 2023国产一二三区日本精品2022| 久热精品在线视频| av亚洲一区二区三区| 美女大黄三级视频在线观看| 国产无套丰满白嫩对白| 日本中文字幕免费| www成人啪啪18软件| 免费看日韩毛片| 日本不卡一区二区三区高清视频| 国模雨婷捆绑高清在线| 欧美精品三级日韩久久| 人体私拍套图hdxxxx| 丰满人妻一区二区三区四区53| 成人h动漫精品| 欧美精品中文字幕亚洲专区| 国产亚洲激情| 欧美一区二区日韩一区二区| 日韩 欧美一区二区三区| 17c丨国产丨精品视频| 国产 日韩 欧美 精品| 蜜桃视频动漫在线播放| 丁香五月网久久综合| www.涩涩爱| 一区二区欧美视频| 熟女视频一区二区三区| 久久久精品免费网站| 91麻豆精品国产91久久久更新资源速度超快| 亚洲男人的天堂成人| 91欧美日韩| 日本在线一区二区三区| 曰韩少妇与小伙激情| 天天综合五月天| 亚洲激情男女视频| 一区二区三区| 欧美放荡办公室videos4k| 久久精品ww人人做人人爽| 欧美女同在线观看| 91国内在线视频| 国产精品h片在线播放| 日韩欧美国产另类| 欧美在线一级| 精品精品国产高清a毛片牛牛| 欧美美女一区| av亚洲精华国产精华| 欧美一级二区| 久草视频免费播放| 国内精品久久久久久中文字幕| 艳妇臀荡乳欲伦亚洲一区| 色婷婷av一区二区三区软件| 欧美日本在线看| 久久黄色免费看| 亚洲a一区二区| 亚洲国产欧美一区二区三区同亚洲| av在线免费不卡| 色综合色综合久久综合频道88| 国产欧美婷婷中文| 日本不卡的三区四区五区| 日韩人妻精品中文字幕| 中文字幕在线视频免费观看| www.四虎影视.com| 亚洲视频1区| 屁屁影院国产第一页| 欧美国产日韩精品免费观看| 91精品入口蜜桃| 97超碰在线播放| 国产真实的和子乱拍在线观看| 97国产真实伦对白精彩视频8| 日本电影亚洲天堂一区| 精品国产乱码久久久久久108| 欧美日韩一区二区三区视视频| 欧美xxxxxxxxx| 激情国产一区| 91一区二区三区| 2024短剧网剧在线观看| 无码人妻h动漫| 国产精品少妇自拍| 97在线观看免费高清| 亚洲精品视频在线观看免费| 午夜影院韩国伦理在线| 最近2019中文字幕第三页视频| 国产精品伦理一区二区三区| www.蜜桃av.com| 欧洲在线一区| 亚洲 欧美 综合 另类 中字| 国产激情视频一区二区三区| 一区二区国产盗摄色噜噜| 日韩精品一区二区三区在线视频| av加勒比在线| 欧美videofree性高清杂交| 国产一区二区三区四区二区| 久久久久久久久久99| 亚洲资源av| www.com欧美| 亚洲午夜精品一区二区国产| 国产乱码在线| 美女网站视频在线| 国产一区二三区| 亚洲免费在线播放| 偷拍一区二区三区| 日韩精品手机在线| 68精品国产免费久久久久久婷婷| 国内精品伊人久久久久av一坑| 日本一区二区三区久久| 亚洲一级片免费看| 无码粉嫩虎白一线天在线观看| 8x海外华人永久免费日韩内陆视频| 亚洲午夜未满十八勿入免费观看全集| 色吊丝在线永久观看最新版本| 奶水喷射视频一区| 亚洲成人av在线播放| 国产成人香蕉在线视频fuz| 日韩视频在线观看一区| 好吊色欧美一区二区三区| 亚洲精品一区中文字幕乱码| 亚洲精品欧洲| 亚洲第一成年人网站| 精品国产乱码久久久久久闺蜜| 在线精品在线| www亚洲人| 夜级特黄日本大片_在线| 日韩在线一区二区| 国产精品视频福利| 国产精品视频免费一区| 亚洲精品在线视频| 午夜成人鲁丝片午夜精品| 欧美精品资源| 亚洲精品日产| 成人精品国产福利| 你懂得在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品99一区二区| 亚洲美女色禁图| 欧美影院一区| 91精彩刺激对白露脸偷拍| 亚洲女同志亚洲女同女播放| 国产黄a三级三级三级| 亚洲综合丝袜美腿| 国产在线一区二区视频| 黄色一级大片在线免费看国产一| 三级小说一区| 国产欧美一区二区三区视频| 动漫av在线免费观看| 黑人极品ⅴideos精品欧美棵| 国产成人精品a视频| 欧美一区三区四区| 亚洲电影一二三区| 97成人超碰视| 人人澡人一摸人人添| 免费精品视频在线| 中文字幕日本一区二区| 欧美一区国产一区| 伊人狠狠色丁香综合尤物| 天堂av中文在线观看| 国产福利精品av综合导导航| 你懂得在线网址| 91国在线高清视频| 精品视频二区三区| 欧美一级鲁丝片| 成人国产精品免费观看动漫| 亚洲欧洲日本一区二区三区| 精品亚洲欧美一区| www.三级.com| 国产一区二区三区四区hd| 在线观看视频你懂的| 777午夜精品免费视频| 视频在线观看一区二区| 成年网在线观看免费观看网址| 免费看av软件| 国产精品毛片久久| 国产视频999| 欧美不卡一区| 日韩福利视频一区| 波多野结衣在线播放一区| 一本到三区不卡视频| 欧美国产成人精品| 欧美一进一出视频| 中文字幕永久在线观看| 免费一级欧美片在线观看| 国产精品777777在线播放| 亚洲精品动漫久久久久| 91av.cn| 丰满少妇高潮久久三区| 91日韩免费| 亚洲成人精品av| 国产成人精品aa毛片| 992kp快乐看片永久免费网址| 红桃av永久久久| 91亚洲国产成人久久精品麻豆| 成人黄色网址在线观看| 成人性视频免费看| 国产99视频精品免费视频36| 欧美aa免费在线| 欧美激情精品在线| 天堂√在线观看一区二区| 中文字幕亚洲欧美| 精品视频黄色| japanese在线观看| 国产女人18水真多18精品一级做| 成人不用播放器| 最好看的日本字幕mv视频大全| 99国产精品久久久久| 久久国产精品成人免费观看的软件| 91极品女神在线| 久久精品视频中文字幕| 日韩麻豆第一页| gogogo高清免费观看在线视频| 日本成人福利| 欧洲激情一区二区| 欧美私人免费视频| www..com日韩| 依依综合在线| 特黄aaaaaaaaa真人毛片| 欧美69wwwcom| 国产有码在线观看| 另类专区欧美| 亚洲精品成人久久电影| 一级特黄aaaaaa大片| 亚洲第一国产精品| 精品国产欧美成人夜夜嗨| 欧美大片网站| 国产成人精品18| 欧美最猛性xxxx免费| 精品网站999www| 国产视频一区二| 91cn在线观看| 国产精品18在线| 亚洲视频观看| 国产精品精品国产| 草民电影神马电影一区二区| 永久在线免费观看| 亚洲精品自在久久| 男男做爰猛烈叫床爽爽小说| 成人黄色免费视频| 国产熟妇一区二区三区四区| 91国自产精品中文字幕亚洲| 青青青国产精品一区二区| 亚洲欧美中日韩| 欧美成人高清视频| 一起草最新网址| 亚洲区精品久久一区二区三区| 在线免费黄色小视频| 国产亚洲精品成人a| 中文字幕一区二区三区不卡在线| 最新黄色av网址| 免费看日b视频| 欧美日韩高清在线一区| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲中文字幕无码av永久| 亚洲韩国日本中文字幕| 91在线观看污| 视频一区视频二区视频三区视频四区国产| 国产成人av在线播放| 福利小视频在线| 中文字幕第一区第二区| 少妇久久久久久被弄到高潮| 国产精品自拍小视频| 国模精品一区二区| 137大胆人体在线观看| 国产一区二区三区高清| 亚洲熟女少妇一区二区| 一区二区冒白浆视频| 午夜精品一区二区三区国产| 欧美亚洲色图视频| 成在线人视频免费视频| 国产激情一区二区三区| 在线观看免费高清视频97| 黑丝一区二区| 吉吉日韩欧美| av黄色网址| 国产男女爽爽爽| 68精品久久久久久欧美| 91欧美国产| 受虐m奴xxx在线观看| 久久免费视频网站| 国产特级黄色录像| 日本一区二区在线免费观看| 日本高清中文字幕在线| 丁香花五月激情| jazzjazz国产精品久久| 日韩精品一区二区三区在线视频| 在线满18网站观看视频| 国产精品久久久久久久第一福利| 你懂的视频在线一区二区| 97久久精品人人澡人人爽缅北| 中文字幕一区二区在线观看| 青青草免费观看完整版高清| 成人激情电影一区二区| 国产精品一区二区三区四区在线观看| 亚洲一区二区精品久久av| 爱爱视频免费在线观看| 99re成人在线| 国产成年精品| 亚洲s色大片在线观看| 欧美天天在线| 午夜欧美理论片| 日本韩国精品一区二区在线观看|