婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > SQL中EXPLAIN命令的使用方法

SQL中EXPLAIN命令的使用方法

熱門標簽:電話外呼系統(tǒng)改號 武漢網(wǎng)絡(luò)外呼系統(tǒng)服務(wù)商 啥是企業(yè)400電話辦理 地圖標注費用是多少 南昌三維地圖標注 外呼系統(tǒng)打電話上限是多少 百應(yīng)電話機器人優(yōu)勢 怎樣在地圖標注銷售區(qū)域 曲靖移動外呼系統(tǒng)公司

在日常工作中,我們會有時會開慢查詢?nèi)ビ涗浺恍﹫?zhí)行時間比較久的SQL語句,找出這些SQL語句并不意味著完事了,些時我們常常用到explain這個命令來查看一個這些SQL語句的執(zhí)行計劃,查看該SQL語句有沒有使用上了索引,有沒有做全表掃描,這都可以通過explain命令來查看。所以我們深入了解MySQL的基于開銷的優(yōu)化器,還可以獲得很多可能被優(yōu)化器考慮到的訪問策略的細節(jié),以及當運行SQL語句時哪種策略預(yù)計會被優(yōu)化器采用。

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

使用方法,在select語句前加上explain就可以了:

如:

explain select surname,first_name form a,b where a.id=b.id 

1、EXPLAIN tbl_name

EXPLAIN tbl_name是DESCRIBE tbl_name或SHOW COLUMNS FROM tbl_name的一個同義詞。

2、EXPLAIN [EXTENDED] SELECT select_options

如果在SELECT語句前放上關(guān)鍵詞EXPLAIN,MySQL將解釋它如何處理SELECT,提供有關(guān)表如何聯(lián)接和聯(lián)接的次序。

借助于EXPLAIN,可以知道什么時候必須為表加入索引以得到一個使用索引來尋找記錄的更快的SELECT。

還可以知道優(yōu)化器是否以一個最佳次序聯(lián)接表。為了強制優(yōu)化器讓一個SELECT語句按照表命名順序的聯(lián)接次序,語句應(yīng)以STRAIGHT_JOIN而不只是SELECT開頭。

EXPLAIN為用于SELECT語句中的每個表返回一行信息。表以它們在處理查詢過程中將被MySQL讀入的順序被列出。MySQL用一遍掃描多次聯(lián)接(single-sweep multi-join)的方式解決所有聯(lián)接。這意味著MySQL從第一個表中讀一行,然后找到在第二個表中的一個匹配行,然后在第3個表中等等。當所有的表處理完后,它輸出選中的列并且返回表清單直到找到一個有更多的匹配行的表。從該表讀入下一行并繼續(xù)處理下一個表。

當使用EXTENDED關(guān)鍵字時,EXPLAIN產(chǎn)生附加信息,可以用SHOW WARNINGS瀏覽。該信息顯示優(yōu)化器限定SELECT語句中的表和列名,重寫并且執(zhí)行優(yōu)化規(guī)則后SELECT語句是什么樣子,并且還可能包括優(yōu)化過程的其它注解。

EXPLAIN的每個輸出行提供一個表的相關(guān)信息,并且每個行包括下面的列:

id:SELECT識別符。這是SELECT的查詢序列號。

select_type:SELECT類型。

  1. SIMPLE: 簡單SELECT(不使用UNION或子查詢)
  2. PRIMARY: 最外面的SELECT
  3. UNION:UNION中的第二個或后面的SELECT語句
  4. DEPENDENT UNION:UNION中的第二個或后面的SELECT語句,取決于外面的查詢
  5. UNION RESULT:UNION的結(jié)果
  6. SUBQUERY:子查詢中的第一個SELECT
  7. DEPENDENT SUBQUERY:子查詢中的第一個SELECT,取決于外面的查詢
  8. DERIVED:導(dǎo)出表的SELECT(FROM子句的子查詢)

table:表名

type:聯(lián)接類型

  1. system:表僅有一行(=系統(tǒng)表)。這是const聯(lián)接類型的一個特例。
  2. const:表最多有一個匹配行,它將在查詢開始時被讀取。因為僅有一行,在這行的列值可被優(yōu)化器剩余部分認為是常數(shù)。const用于用常數(shù)值比較PRIMARY KEY或UNIQUE索引的所有部分時。
  3. eq_ref:對于每個來自于前面的表的行組合,從該表中讀取一行。這可能是最好的聯(lián)接類型,除了const類型。它用在一個索引的所有部分被聯(lián)接使用并且索引是UNIQUE或PRIMARY KEY。eq_ref可以用于使用= 操作符比較的帶索引的列。比較值可以為常量或一個使用在該表前面所讀取的表的列的表達式。
  4. ref:對于每個來自于前面的表的行組合,所有有匹配索引值的行將從這張表中讀取。如果聯(lián)接只使用鍵的最左邊的前綴,或如果鍵不是UNIQUE或PRIMARY KEY(換句話說,如果聯(lián)接不能基于關(guān)鍵字選擇單個行的話),則使用ref。如果使用的鍵僅僅匹配少量行,該聯(lián)接類型是不錯的。ref可以用于使用=或=>操作符的帶索引的列。
  5. ref_or_null:該聯(lián)接類型如同ref,但是添加了MySQL可以專門搜索包含NULL值的行。在解決子查詢中經(jīng)常使用該聯(lián)接類型的優(yōu)化。
  6. index_merge:該聯(lián)接類型表示使用了索引合并優(yōu)化方法。在這種情況下,key列包含了使用的索引的清單,key_len包含了使用的索引的最長的關(guān)鍵元素。
  7. unique_subquery:該類型替換了下面形式的IN子查詢的ref:value IN (SELECT primary_key FROMsingle_table WHERE some_expr);unique_subquery是一個索引查找函數(shù),可以完全替換子查詢,效率更高。
  8. index_subquery:該聯(lián)接類型類似于unique_subquery。可以替換IN子查詢,但只適合下列形式的子查詢中的非唯一索引:value IN (SELECT key_column FROM single_table WHERE some_expr)
  9. range:只檢索給定范圍的行,使用一個索引來選擇行。key列顯示使用了哪個索引。key_len包含所使用索引的最長關(guān)鍵元素。在該類型中ref列為NULL。當使用=、>、>、>=、、=、IS NULL、=>、BETWEEN或者IN操作符,用常量比較關(guān)鍵字列時,可以使用range
  10. index:該聯(lián)接類型與ALL相同,除了只有索引樹被掃描。這通常比ALL快,因為索引文件通常比數(shù)據(jù)文件小。
  11. all:對于每個來自于先前的表的行組合,進行完整的表掃描。如果表是第一個沒標記const的表,這通常不好,并且通常在它情況下很差。通常可以增加更多的索引而不要使用ALL,使得行能基于前面的表中的常數(shù)值或列值被檢索出。

possible_keys:possible_keys列指出MySQL能使用哪個索引在該表中找到行。注意,該列完全獨立于EXPLAIN輸出所示的表的次序。這意味著在possible_keys中的某些鍵實際上不能按生成的表次序使用。

key:key列顯示MySQL實際決定使用的鍵(索引)。如果沒有選擇索引,鍵是NULL。要想強制MySQL使用或忽視possible_keys列中的索引,在查詢中使用FORCE INDEX、USE INDEX或者IGNORE INDEX。

key_len:key_len列顯示MySQL決定使用的鍵長度。如果鍵是NULL,則長度為NULL。注意通過key_len值我們可以確定MySQL將實際使用一個多部關(guān)鍵字的幾個部分。

ref:ref列顯示使用哪個列或常數(shù)與key一起從表中選擇行。

rows:rows列顯示MySQL認為它執(zhí)行查詢時必須檢查的行數(shù)。

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

  1. Distinct:MySQL發(fā)現(xiàn)第1個匹配行后,停止為當前的行組合搜索更多的行。
  2. Not exists:MySQL能夠?qū)Σ樵冞M行LEFT JOIN優(yōu)化,發(fā)現(xiàn)1個匹配LEFT JOIN標準的行后,不再為前面的的行組合在該表內(nèi)檢查更多的行。
  3. range checked for each record (index map: #):MySQL沒有發(fā)現(xiàn)好的可以使用的索引,但發(fā)現(xiàn)如果來自前面的表的列值已知,可能部分索引可以使用。對前面的表的每個行組合,MySQL檢查是否可以使用range或index_merge訪問方法來索取行。
  4. Using filesort:MySQL需要額外的一次傳遞,以找出如何按排序順序檢索行。通過根據(jù)聯(lián)接類型瀏覽所有行并為所有匹配WHERE子句的行保存排序關(guān)鍵字和行的指針來完成排序。然后關(guān)鍵字被排序,并按排序順序檢索行。
  5. Using index:從只使用索引樹中的信息而不需要進一步搜索讀取實際的行來檢索表中的列信息。當查詢只使用作為單一索引一部分的列時,可以使用該策略。
  6. Using temporary:為了解決查詢,MySQL需要創(chuàng)建一個臨時表來容納結(jié)果。典型情況如查詢包含可以按不同情況列出列的GROUP BY和ORDER BY子句時。
  7. Using where:WHERE子句用于限制哪一個行匹配下一個表或發(fā)送到客戶。除非你專門從表中索取或檢查所有行,如果Extra值不為Using where并且表聯(lián)接類型為ALL或index,查詢可能會有一些錯誤。
  8. Using sort_union(...), Using union(...), Using intersect(...):這些函數(shù)說明如何為index_merge聯(lián)接類型合并索引掃描。
  9. Using index for group-by:類似于訪問表的Using index方式,Using index for group-by表示MySQL發(fā)現(xiàn)了一個索引,可以用來查詢GROUP BY或DISTINCT查詢的所有列,而不要額外搜索硬盤訪問實際的表。并且,按最有效的方式使用索引,以便對于每個組,只讀取少量索引條目。

通過相乘EXPLAIN輸出的rows列的所有值,你能得到一個關(guān)于一個聯(lián)接如何的提示。這應(yīng)該粗略地告訴你MySQL必須檢查多少行以執(zhí)行查詢。當你使用max_join_size變量限制查詢時,也用這個乘積來確定執(zhí)行哪個多表SELECT語句。

總結(jié)

到此這篇關(guān)于SQL中EXPLAIN命令使用的文章就介紹到這了,更多相關(guān)SQL EXPLAIN命令使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解MySQL中EXPLAIN解釋命令及用法講解
  • MySQL中執(zhí)行計劃explain命令示例詳解
  • MySQL中EXPLAIN命令詳解
  • 簡述Mysql Explain 命令
  • Mysql Explain命令的使用與分析
  • explain命令為什么可能會修改MySQL數(shù)據(jù)

標簽:資陽 荊州 錦州 滄州 隨州 吉林 黑河 甘南

巨人網(wǎng)絡(luò)通訊聲明:本文標題《SQL中EXPLAIN命令的使用方法》,本文關(guān)鍵詞  SQL,中,EXPLAIN,命令,的,使用方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL中EXPLAIN命令的使用方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL中EXPLAIN命令的使用方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品对白一区国产伦| 欧美系列亚洲系列| 久久精品日韩一区二区三区| 久草这里只有精品视频| 欧美大片国产精品| 国产美女精品在线| 国产精品每日更新在线播放网址 | 亚洲国产精品视频| 欧美日韩精品二区第二页| 日本在线不卡视频| 久久一夜天堂av一区二区三区| 国产成人免费9x9x人网站视频| 99re66热这里只有精品3直播| 亚洲午夜在线观看视频在线| 欧美精品在线观看播放| 久88久久88久久久| 自拍偷拍亚洲综合| 欧美精品久久久久久久久老牛影院| 在线看国产一区| 国产亚洲污的网站| 一本一道久久a久久精品综合蜜臀| 亚洲第一福利视频在线| 久久综合色天天久久综合图片| 国产九九视频一区二区三区| 最新日韩av在线| 日韩欧美国产不卡| 99久久亚洲一区二区三区青草| 午夜天堂影视香蕉久久| 国产女人aaa级久久久级| 欧美天堂一区二区三区| 国产成人在线免费| 三级成人在线视频| 国产精品久久久久久久第一福利 | 日本成人在线电影网| 色久综合一二码| 麻豆一区二区三区| 亚洲乱码中文字幕综合| 26uuu欧美| 国产视频一区二区三区在线观看| 久久草av在线| 亚洲最色的网站| 国产精品女上位| 精品久久久久久久人人人人传媒| 91久久国产综合久久| 国产精品一区二区久激情瑜伽| 亚洲国产成人精品视频| 中文字幕在线不卡国产视频| 欧美tickling挠脚心丨vk| 欧美中文字幕一区二区三区| 成人精品gif动图一区| 久久精品国产一区二区三区免费看| 亚洲一区免费在线观看| 国产精品毛片久久久久久久| 久久色视频免费观看| 337p亚洲精品色噜噜| 亚洲3atv精品一区二区三区| 亚洲人123区| 国产精品久久久久久久浪潮网站| 久久影院午夜片一区| 日韩精品一区二区三区中文精品| 欧美日韩精品久久久| 欧美日韩在线电影| 久久人人超碰精品| 91丝袜高跟美女视频| a级高清视频欧美日韩| 丰满少妇久久久久久久| 国产一区二三区好的| 成人污污视频在线观看| 日本一区二区三区视频视频| 国产亚洲美州欧州综合国| 欧美大胆一级视频| 日韩欧美在线123| 日韩欧美123| 精品国产一区二区三区久久久蜜月 | 精品久久久久99| 91麻豆精品91久久久久同性| 欧美日韩成人激情| 7777精品伊人久久久大香线蕉| 在线播放中文一区| 91精品国产丝袜白色高跟鞋| 欧美一区二区日韩| 精品99久久久久久| 亚洲午夜激情av| 国产欧美日韩视频一区二区| 欧美国产禁国产网站cc| 中文字幕在线免费不卡| 亚洲欧美日韩精品久久久久| 一区二区三区四区视频精品免费 | 国产精品国产三级国产aⅴ入口| 中文字幕精品一区| 亚洲乱码中文字幕综合| 日韩av二区在线播放| 国产永久精品大片wwwapp| 亚洲va欧美va人人爽| www国产成人| 国产精品久久久久国产精品日日| 亚洲蜜臀av乱码久久精品| 三级精品在线观看| 国产精品一品二品| 91成人免费网站| 日韩欧美亚洲国产另类| 国产精品三级av| 成人精品高清在线| av电影一区二区| 欧美日韩精品高清| 国产三级精品三级| 亚洲国产三级在线| 国产麻豆精品在线| 色狠狠一区二区三区香蕉| 日韩一区二区三免费高清| 国产人成一区二区三区影院| 亚洲一区成人在线| 国产一区二区三区精品视频| 日本久久电影网| 精品国产人成亚洲区| 玉米视频成人免费看| 久久福利视频一区二区| 色噜噜狠狠色综合欧洲selulu| 精品美女一区二区| 亚洲国产综合91精品麻豆| 国产精品 欧美精品| 麻豆91在线播放免费| 色狠狠av一区二区三区| 2023国产精品视频| 亚洲福利一区二区三区| 粉嫩av一区二区三区| 欧美一区二区三区四区五区| 亚洲视频免费在线观看| 国产黄色成人av| 玉足女爽爽91| 精品亚洲成av人在线观看| 久久99国产精品久久99果冻传媒| 91成人免费网站| 国产精品毛片久久久久久| 久久99久久精品| 91精品视频网| 亚洲精品精品亚洲| 成人免费观看av| 久久综合色综合88| 美腿丝袜一区二区三区| 欧美三片在线视频观看| 亚洲精品中文字幕在线观看| 高清不卡一区二区在线| 26uuu亚洲综合色欧美| 日本欧美久久久久免费播放网| 色诱视频网站一区| 国产精品久久久久aaaa樱花| 国产精品一区二区三区99| 国产成人综合在线观看| 精品91自产拍在线观看一区| 日韩av午夜在线观看| 欧美福利视频一区| 亚洲成a人v欧美综合天堂下载| 色综合亚洲欧洲| 一区二区三区在线视频免费 | 国产一区二区三区蝌蚪| 欧美日韩免费观看一区二区三区 | 成人晚上爱看视频| 国产日韩精品久久久| 国产在线国偷精品产拍免费yy| 日韩免费一区二区三区在线播放| 日本vs亚洲vs韩国一区三区| 欧美二区乱c少妇| 秋霞午夜av一区二区三区| 欧美成人精品3d动漫h| 中文av一区特黄| 99视频精品在线| 亚洲黄色性网站| 欧美日韩一区小说| 日本亚洲免费观看| 国产成人啪免费观看软件| 欧美国产精品v| 91福利在线导航| 日韩av二区在线播放| 精品国产乱码久久久久久蜜臀 | 日韩高清电影一区| 精品1区2区在线观看| 国产成人综合亚洲91猫咪| 国产精品亲子乱子伦xxxx裸| 91亚洲精品久久久蜜桃网站| 亚洲男人电影天堂| 911精品产国品一二三产区| 蜜桃视频在线一区| 国产欧美日韩久久| 91老司机福利 在线| 日韩精彩视频在线观看| 精品国产91久久久久久久妲己| 成人免费视频国产在线观看| 亚洲女性喷水在线观看一区| 欧美日韩国产在线观看| 久久国产精品色| 亚洲三级电影全部在线观看高清| 欧美日韩免费不卡视频一区二区三区 | 欧美日韩午夜在线| 国产一区二区精品在线观看| 日韩理论在线观看| 国产一区二区91| 一区二区视频在线看| 日韩视频在线你懂得| 99国产精品国产精品久久|