亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 詳解 MySQL 執(zhí)行計劃

詳解 MySQL 執(zhí)行計劃

熱門標(biāo)簽:房產(chǎn)智能外呼系統(tǒng)品牌 天智外呼系統(tǒng) 常州電銷外呼系統(tǒng)一般多少錢 地圖標(biāo)注被騙三百怎么辦 400電話鄭州申請 沃克斯電梯外呼線路圖 北京人工外呼系統(tǒng)價錢 福州呼叫中心外呼系統(tǒng)哪家好 云南語音外呼系統(tǒng)平臺

EXPLAIN語句提供有關(guān)MySQL如何執(zhí)行語句的信息。EXPLAIN與SELECT,DELETE,INSERT,REPLACE和UPDATE語句一起使用。

EXPLAIN為SELECT語句中使用的每個表返回一行信息。它按照MySQL在處理語句時讀取它們的順序列出了輸出中的表。 MySQL使用嵌套循環(huán)連接方法解析所有連接。這意味著MySQL從第一個表中讀取一行,然后在第二個表,第三個表中找到匹配的行,依此類推。處理完所有表后,MySQL輸出所選列,并通過表列表回溯,直到找到一個表,其中有更多匹配的行。從這個表中讀取下一行,然后繼續(xù)處理下一個表。

1.  EXPLAIN 輸出列

說下幾個關(guān)鍵的列:

  • type :連接類型
  • possible_keys :可選的索引
  • key :實際執(zhí)行時使用的索引
  • ref :ref列顯示將哪些列或常量與前面key列中顯示的命名的索引進(jìn)行比較以從表中選擇行
  • rows :rows列表示MySQL認(rèn)為執(zhí)行查詢必須檢查的行數(shù)

2.  連接類型

連接類型,順序從最好到最差,依次是: 

system

表只有一行。這是const join類型的特例。

const

表最多有一個匹配行,在查詢開始時讀取。因為只有一行,所以這一行中的列的值可以被優(yōu)化器的其余部分視為常量。const表非常快,因為它們只被讀取一次。

當(dāng)你用PRIMARY KEY或UNIQUE索引的所有部分與常量值進(jìn)行比較時,將使用const。

例如,下面的表tbl_name可以被當(dāng)做const表:

SELECT * FROM tbl_name WHERE primary_key=1;
SELECT * FROM tbl_name WHERE primary_key_part1=1 AND primary_key_part2=2;

eq_ref

對于前表中的每一行組合,從這個表中讀取一行。除了system和const類型,這是可能的最好的聯(lián)接類型。當(dāng)一個索引的所有部分都被聯(lián)接使用并且索引是PRIMARY KEY或UNIQUE NOT NULL索引時,使用它。

eq_ref可以用于使用=操作符進(jìn)行比較的索引列。比較值可以是一個常量,也可以是使用在此表之前讀取的表中的列的表達(dá)式。

例如,下面的例子中MySQL可以使用eq_ref連接來處理ref_table:

SELECT * FROM ref_table,other_table
 WHERE ref_table.key_column=other_table.column;

SELECT * FROM ref_table,other_table
 WHERE ref_table.key_column_part1=other_table.column AND ref_table.key_column_part2=1;

ref

對于前表中的行的每種組合,將從該表中讀取具有匹配索引值的所有行。如果聯(lián)接僅使用key的最左前綴,或者如果key不是PRIMARY KEY或UNIQUE索引(換句話說,如果聯(lián)接無法基于key值選擇單個行),則使用ref。如果使用的key僅匹配幾行,則這是一種很好的聯(lián)接類型。

ref可用于使用=或=>運算符進(jìn)行比較的索引列。

例如,下面的例子中,MySQL可以用ref連接來處理ref_table:

SELECT * FROM ref_table WHERE key_column=expr;

SELECT * FROM ref_table,other_table
 WHERE ref_table.key_column=other_table.column;

SELECT * FROM ref_table,other_table
 WHERE ref_table.key_column_part1=other_table.column
 AND ref_table.key_column_part2=1;

fulltext

使用FULLTEXT索引執(zhí)行連接

ref_or_null

這種連接類型類似于ref,但是MySQL會額外搜索包含NULL值的行。此聯(lián)接類型優(yōu)化最常用于解析子查詢。

例如,下面的例子中,MYSQL可以使用ref_or_null來處理ref_table:

SELECT * FROM ref_table WHERE key_column=expr OR key_column IS NULL;

index_merge

這種連接類型表明使用了索引合并優(yōu)化。在這種情況下,輸出行中的key列包含使用的索引列表,而key_len包含所使用索引的最長key部分列表。

unique_subquery

此類型將eq_ref替換為以下形式的某些IN子查詢:

value IN (SELECT primary_key FROM single_table WHERE some_expr)

index_subquery

與unique_subquery類似,它代替了IN子查詢,但適用于以下形式的子查詢中的非唯一索引:

value IN (SELECT key_column FROM single_table WHERE some_expr)

range

只檢索給定范圍內(nèi)的行,并使用索引來選擇行。輸出行中的key列指示使用了哪個索引。key_len包含所使用的最長的key部分。對于這種類型,ref列為NULL。

使用=,>,>,> =,,=,IS NULL,=>,BETWEEN,LIKE或IN()運算符將key列與常量進(jìn)行比較時,可以使用range:

SELECT * FROM tbl_name WHERE key_column = 10;

SELECT * FROM tbl_name WHERE key_column BETWEEN 10 and 20;

SELECT * FROM tbl_name WHERE key_column IN (10,20,30);

SELECT * FROM tbl_name WHERE key_part1 = 10 AND key_part2 IN (10,20,30);

index

index連接類型與all是一樣的,區(qū)別在于index連接類型掃描的時候索引樹。通常,只發(fā)生在以下兩種情況:

  • 如果索引是查詢的覆蓋索引,并且可用于滿足表中所需的所有數(shù)據(jù),則僅掃描索引樹。在這種情況下,“Extra”列顯示“Using index”。僅索引掃描通常比ALL快,因為索引的大小通常小于表數(shù)據(jù)。
  • 使用從索引讀取數(shù)據(jù)以按索引順序查找數(shù)據(jù)行來執(zhí)行全表掃描。“Uses index”不會出現(xiàn)在Extra列中。

ALL

對前表的行的每個組合進(jìn)行全表掃描。如果該表是未標(biāo)記為const的第一個表,則通常不好,并且在所有其他情況下通常非常糟糕。通常,可以通過添加索引來避免ALL,這些索引允許基于早期表中的常量值或列值從表中檢索行。 

3.  Extra列

關(guān)于Extra列的輸出,只說幾個常見的:

Using filesort

MySQL必須做一次額外操作,以找出如何按排序順序檢索行。排序是通過根據(jù)聯(lián)接類型遍歷所有行并存儲與WHERE子句匹配的所有行的排序key和指向該行的指針來完成的。然后對key進(jìn)行排序,并按排序順序檢索行。

Using index

僅使用索引樹中的信息從表中檢索列信息,而不需要執(zhí)行額外的查找來讀取實際行。當(dāng)查詢只使用屬于單個索引的列時,可以使用此策略。

Using temporary

為了解析查詢,MySQL需要創(chuàng)建一個臨時表來保存結(jié)果。通常,如果查詢包含以不同方式展示列的GROUP BY和ORDER BY子句,則會發(fā)生這種情況。

Using where 

WHERE子句用于限制哪些行匹配下一個表或發(fā)送給客戶端。除非你打算從表中獲取或檢查所有行,否則如果額外的值沒有使用where,并且表連接類型是all或index,則查詢中可能出現(xiàn)錯誤。 

4.  優(yōu)化ORDER BY

在某些情況下,MySQL可能會使用一個索引來滿足ORDER BY子句,從而避免執(zhí)行filesort操作所涉及的額外排序。

假設(shè)在(key_part1, key_part2)上有一個索引,下面的查詢可以使用索引來解析ORDER BY部分。優(yōu)化器是否真的這樣做,取決于如果還必須讀取索引之外的時,讀取索引是否比表掃描更有效。

SELECT * FROM t1 ORDER BY key_part1, key_part2;

上面的語句,查詢使用SELECT *,這可能會選擇比key_part1和key_part2更多的列。在這種情況下,掃描整個索引并查找表行以查找索引中未包含的列可能比掃描表并排序結(jié)果要昂貴。如果是這樣,則優(yōu)化器不太可能使用索引。如果SELECT *僅選擇索引列,則使用索引并避免排序。

下面這個查詢中,key_part1是常量,因此通過索引訪問的所有行都按key_part2順序排列,并且如果WHERE子句的選擇性足以使索引范圍掃描比表掃描便宜,則在(key_part1,key_part2)上的索引可以避免排序:

SELECT * FROM t1 WHERE key_part1 = constant ORDER BY key_part2; 

以上就是詳解 MySQL 執(zhí)行計劃的詳細(xì)內(nèi)容,更多關(guān)于MySQL 執(zhí)行計劃的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Mysql深入探索之Explain執(zhí)行計劃詳析
  • MySQL執(zhí)行計劃的深入分析
  • mysql執(zhí)行計劃id為空(UNION關(guān)鍵字)詳解
  • MySQL中通過EXPLAIN如何分析SQL的執(zhí)行計劃詳解
  • MySQL中執(zhí)行計劃explain命令示例詳解
  • MySql中如何使用 explain 查詢 SQL 的執(zhí)行計劃
  • mysql執(zhí)行計劃介紹
  • MYSQL explain 執(zhí)行計劃
  • 帶你學(xué)習(xí)MySQL執(zhí)行計劃

標(biāo)簽:徐州 沈陽 拉薩 沈陽 珠海 移動 鹽城 黔東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解 MySQL 執(zhí)行計劃》,本文關(guān)鍵詞  詳解,MySQL,執(zhí)行,計劃,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解 MySQL 執(zhí)行計劃》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解 MySQL 執(zhí)行計劃的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产精品自拍一区| a级毛片免费全部播放| 国产伦精品一区二区三区无广告| 欧美电影免费看大全| 国产成a人片在线观看视频| 日韩女人做爰大片| 亚欧乱色一区二区三区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 一级毛片看真人在线视频| 九九九网站| 91麻豆精品国产片在线观看| 一级女性大黄生活片免费| 黄视频网站免费| 可以免费看污视频的网站| 毛片高清| 免费国产一级特黄aa大片在线| 日韩免费在线观看视频| 韩国三级香港三级日本三级| 免费国产一级特黄aa大片在线| 日本伦理片网站| 999精品在线| 亚欧乱色一区二区三区| 国产高清在线精品一区a| 日韩专区亚洲综合久久| 国产综合成人观看在线| 日韩av成人| 亚欧乱色一区二区三区| 国产网站免费| 日韩中文字幕一区| 国产伦精品一区二区三区无广告| 日韩专区一区| 欧美电影免费| 久久国产影视免费精品| 韩国三级香港三级日本三级la | 日韩中文字幕在线观看视频| 欧美激情一区二区三区视频| 一级女性大黄生活片免费| 九九精品在线| 国产网站免费视频| 亚洲精品中文字幕久久久久久| 精品视频免费观看| 你懂的日韩| 91麻豆精品国产自产在线| 在线观看成人网 | 99久久视频| 四虎论坛| 九九九国产| 精品久久久久久中文字幕2017| 在线观看成人网| 日韩一级黄色大片| 沈樵在线观看福利| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产精品1024永久免费视频| 日本特黄特黄aaaaa大片| 国产成人精品影视| 国产91精品露脸国语对白| 黄视频网站在线免费观看| 毛片高清| 你懂的国产精品| 日本特黄一级| 欧美激情在线精品video| 九九免费高清在线观看视频| 日韩一级黄色片| 欧美大片a一级毛片视频| 精品视频免费观看| 欧美另类videosbestsex高清| 黄色免费网站在线| 亚洲天堂免费| 麻豆网站在线看| 日韩av东京社区男人的天堂| 黄视频网站在线观看| 国产视频一区二区在线播放| 黄视频网站免费| 九九精品影院| 日韩欧美一二三区| 精品视频在线看| 久草免费在线观看| a级毛片免费全部播放| 精品国产香蕉伊思人在线又爽又黄| 日韩av成人| 欧美1区2区3区| 成人在免费观看视频国产| 精品国产一区二区三区久久久蜜臀 | 国产网站免费| 日韩一级黄色| 日韩av片免费播放| 沈樵在线观看福利| 成人免费一级纶理片| 欧美另类videosbestsex久久| 四虎久久精品国产| 91麻豆国产福利精品| 精品视频在线看 | 韩国毛片| 黄色免费网站在线| 高清一级片| 亚洲精品久久玖玖玖玖| 亚洲女初尝黑人巨高清在线观看| 色综合久久天天综合观看| 国产不卡在线观看视频| 一级女人毛片人一女人| 二级特黄绝大片免费视频大片| 成人高清视频免费观看| 四虎影视久久| 91麻豆精品国产综合久久久| 国产a视频| 精品视频一区二区| 亚洲精品久久久中文字| 精品国产一级毛片| 青青青草视频在线观看| 九九免费高清在线观看视频| 色综合久久天天综合绕观看| 国产麻豆精品高清在线播放| 午夜在线影院| 欧美国产日韩在线| 美女免费黄网站| 久久国产精品自由自在| 国产一区二区精品尤物| 二级片在线观看| 精品国产一区二区三区精东影业 | 精品国产亚洲一区二区三区| 精品在线观看国产| 999精品影视在线观看| 日日爽天天| 日本伦理网站| 精品久久久久久中文| 精品视频一区二区三区免费| 成人a级高清视频在线观看| 日韩中文字幕一区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 超级乱淫黄漫画免费| 可以免费在线看黄的网站| 国产成人欧美一区二区三区的| 国产亚洲免费观看| 九九精品久久| 成人免费网站视频ww| 亚洲天堂免费观看| 国产91精品露脸国语对白| 国产视频久久久| 精品国产亚洲一区二区三区| 台湾毛片| 精品国产一区二区三区久久久狼| 可以免费在线看黄的网站| 可以免费看污视频的网站| 国产精品1024在线永久免费| 国产麻豆精品| 999久久狠狠免费精品| 日韩专区一区| 欧美1区2区3区| 97视频免费在线观看| 国产a一级| 国产一区精品| 天天做日日干| 免费国产在线观看| 91麻豆精品国产高清在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品视频在线观看免费| 免费国产一级特黄aa大片在线| 欧美国产日韩精品| 久久精品人人做人人爽97| 久久精品道一区二区三区| 精品国产一区二区三区久| 国产一级强片在线观看| 成人高清视频在线观看| 深夜做爰性大片中文| 午夜欧美成人香蕉剧场| 日本伦理网站| 欧美激情一区二区三区在线 | 国产综合91天堂亚洲国产| 美女被草网站| 一级毛片看真人在线视频| 日本特黄特色aaa大片免费| 精品视频免费观看| 亚欧成人乱码一区二区| 一级女性全黄生活片免费| 麻豆污视频| 久久成人综合网| 国产91丝袜高跟系列| 亚洲第一页乱| 亚洲 国产精品 日韩| 久久久久久久久综合影视网| 国产亚洲免费观看| 91麻豆国产| 国产视频一区二区在线观看 | 日韩中文字幕一区二区不卡| 中文字幕一区二区三区精彩视频| 久久国产影视免费精品| 九九免费精品视频| 可以免费看污视频的网站| 韩国毛片基地| 成人av在线播放| 欧美国产日韩精品| 91麻豆精品国产自产在线观看一区| 沈樵在线观看福利| 国产伦精品一区二区三区无广告| 国产成人啪精品| 精品在线观看一区| 国产福利免费视频| 99热视热频这里只有精品| 国产激情一区二区三区|