精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SQL調優之Explain關鍵字詳解

數據庫 MySQL
Explain關鍵字可以模擬優化器執行 SQL 查詢語句,從而知道 MySQL 是如何處理 SQL 語句的。分析查詢語句或表結構的性能瓶頸。執行語句:explain + SQL語句。

explain關鍵字可以模擬優化器執行 SQL 查詢語句,從而知道 MySQL 是如何處理 SQL 語句的。分析查詢語句或表結構的性能瓶頸。執行語句:explain + SQL語句。表頭信息如下:

explain各個字段代表的意思

  • id :select查詢的序列號,包含一組數字,表示查詢中執行select子句或操作表的順序。
  • select_type :查詢類型 或者是 其他操作類型。
  • table :正在訪問哪個表。
  • partitions :匹配的分區。
  • type :訪問的類型。
  • possible_keys :顯示可能應用在這張表中的索引,一個或多個,但不一定實際使用到。
  • key :實際使用到的索引,如果為NULL,則沒有使用索引。
  • key_len :表示索引中使用的字節數,可通過該列計算查詢中使用的索引的長度。
  • ref :顯示索引的哪一列被使用了,如果可能的話,是一個常數,哪些列或常量被用于查找索引列上的值。
  • rows :根據表統計信息及索引選用情況,大致估算出找到所需的記錄所需讀取的行數。
  • filtered :查詢的表行占表的百分比。
  • Extra :包含不適合在其它列中顯示但十分重要的額外信息。

ID 字段

select 查詢的序列號,包含一組數字,表示查詢中執行 select 子句或操作表的順序。三種情況:

id 相同: 執行順序由上而下:

explain select t2.* from t1,t2,t3 where t1.id = t2.id and t1.id = t3.id and t1.other_column = '';

id 不同: 如果是子查詢,id 序號會遞增,id 越大優先級越高,越先被執行。

explain select t2.* from t2 where id = (select id from t1 where id = (select t3.id from t3 where t3.other_column = ''));

id 相同不同同時存在: id 如果相同,可以認為是一組,由上往下執行;在所有組里 id 越大,優先級越高,越先執行。

explain select t2.* from (select t3.id from t3 where t3.other_column = '') s1,t2 where s1.id = t2.id;

select_type 字段

主要用于區別普通查詢、聯合查詢、子查詢等的復雜程度。
SIMPLE: 簡單的 select 查詢,查詢中不包含子查詢或者 UNION。
PRIMARY: 查詢中若包含任何復雜的自查詢,最外層查詢為 PRIMARY。

SUBQUERY: 在 SELECT 或 WHERE 中包含子查詢。
UNCACHEABLE SUBQUERY:一個子查詢的結果不能被緩存,必須重新評估外鏈接的第一行。
DERIVED: 在 FROM 列表中包含的子查詢被標記為 DERIVED(衍生)MySQL 會遞歸執行這些子查詢,把結果放進臨時表。

UNION: 若第二個 SELECT 出現在 UNION 之后,則被標記為 UNION,若 UNION 包含在 FROM 子句的子查詢,則外層SELECT 將被標記為 DERIVED。
UNION RESULT: 從 UNION表中獲取結果的 SELECT。

table字段

顯示這行數據是關于那張表

type字段

首先說一下這個字段,要記住以下10個狀態,(從左往右,越靠左邊的越優秀)

NULL > system > const > eq_ref > ref > ref_or_null > index_merge > range > index > ALL

NULL

MySQL能夠在優化階段分解查詢語句,在執行階段用不著再訪問表或索引。存在這樣一種情況,大家都知道索引是將數據在B+Tree中進行排序了,所以你的查詢速率才這么高,那么B+樹的最邊上的葉子節點是不是要么是最大值要么是最小值啊?既然你都知道了,那MySQL比你更知道啊!當你要查詢最大值或者最小值時,MySQL會直接到你的索引得分葉子節點上直接拿,所以不用訪問表或者索引。

NULL的前提是你已經建立了索引。

SYSTEM

表只有一行記錄(等于系統表),這是const類型的特列,平時不大會出現,可以忽略。

const

表示通過索引一次就能找到,const用于比較 primary和 unique索引。因為只匹配一行數據,所以很快。

簡單來說,const是直接按主鍵或唯一鍵讀取。

eq_ref

用于聯表查詢的情況,按聯表的主鍵或唯一鍵聯合查詢。多表join時,對于來自前面表的每一行,在當前表中只能找到一行。這可能是除了system和const之外最好的類型。

ref 可以用于單表掃描或者連接。如果是連接的話,驅動表的一條記錄能夠在被驅動表中通過非唯一(主鍵)屬性所在索引中匹配多行數據,或者是在單表查詢的時候通過非唯一(主鍵)屬性所在索引中查到一行數據。

ref_or_null 類似ref,但是可以搜索值為NULL的行。

index_merge

表示查詢使用了兩個以上的索引,最后取交集或者并集,常見and ,or的條件使用了不同的索引,官方排序這個在ref_or_null之后,但是實際上由于要讀取多個索引,性能可能大部分時間都不如range。

range

只檢索給定范圍的行,使用一個索引來選擇行。一般where語句中出現between、<、>、in等的查詢。這種范圍掃描索引比全表掃描要好,因為只需開始索引的某一點,而結束另一點,不用掃描全部索引;

index

Full Index Scan,index與 ALL區別為 index類型只遍歷索引樹,索引文件通常比數據文件小。index從索引中讀取,而All是從硬盤讀取;

ALL

從磁盤中讀取;如果一個查詢的type是All,并且表的數據量很大,那么請解決它!!!

possible_keys字段

這個表里面存在且可能會被使用的索引,可能會在這個字段下面出現,但是一般都以key為準。

key字段

實際使用的索引,如果為null,則沒有使用索引,否則會顯示你使用了哪些索引,查詢中若使用了覆蓋索引(查詢的列剛好是索引),則該索引僅出現在key列表。

ref字段

列與索引的比較,表示上述表的連接匹配條件,即哪些列或常量被用于查找索引列上的值。

rows字段和Filter字段

rows是根據表的統計信息和索引的選用情況,優化器大概幫你估算出你執行這行函數所需要查詢的行數。

Filter是查詢的行數與總行數的比值。其實作用與rows差不多,都是數值越小,效率越高。

Extra字段

Using index

表示相應的 select操作中使用了覆蓋索引(convering index),避免訪問了表的數據行,效率不錯!

覆蓋索引(covering index ,或稱為索引覆蓋)即從非主鍵索引中就能查到的記錄,而不需要查詢主鍵索引中的記錄,避免了回表的產生減少了樹的搜索次數,顯著提升性能。

Using temporary

表示MySQL需要使用臨時表來存儲結果集,常見于排序 order by和分組查詢 group by。

Using fileSort

表示當SQL中有一個地方需要對一些數據進行排序的時候,優化器找不到能夠使用的索引,所以只能使用外部的索引排序。

MySQL無法利用索引完成的排序操作稱為“文件排序”。導致該問題的原因一般是Where條件和order by子句作用在了不同的列上,一般可以通過合適的索引來減少或者避免。(出現表示不好)

上面提到的常見情況,SQL語句通常寫成這樣select * from a where type = 5 order by id,這類語句一般會產生Using filesort這個選項,即使你在type和id上分別添加了索引。我們想一下它的工作過程,先根據type的索引從所有數據信息中挑選出滿足type = 5條件的,然后根據id列的索引信息對挑選的數據進行排序,所以產生了Using filesort選項。可以通過聯合索引解決這個問題,即在type, id兩列上建立一個聯合索引。

Using where

查詢的列未被索引覆蓋,where篩選條件非索引的前導列,Extra 中為 Using where。


所謂前導列,就是在創建復合索引語句的第一列或者連續的多列。比如通過:CREATE INDEX comp_ind ON table1(x, y, z)創建索引,那么x,xy,xyz都是前導列,而yz,y,z這樣的就不是。

using where,using index

查詢的列被索引覆蓋,并且 where篩選條件是索引列之一但是不是索引的前導列,Extra中為Using where; Using index,意味著無法直接通過索引查找來查詢到符合條件的數據;

查詢的列被索引覆蓋,并且where篩選條件是索引列前導列的一個范圍,同樣意味著無法直接通過索引查詢到符合條件的數據

Using index condition

查詢的列不全在索引中,where條件中是一個前導列的范圍

查詢列不完全被索引覆蓋,查詢條件完全可以使用到索引(進行索引查找)

NULL(既沒有Using index,也沒有Using where Using index,也沒有using where)。

查詢的列未被索引覆蓋,并且where篩選條件是索引的前導列,意味著用到了索引,但是部分字段未被索引覆蓋,必須通過“回表”來實現,不是純粹地用到了索引,也不是完全沒用到索引,Extra中為NULL(沒有信息)。

Using join buffer

使用了連接緩存。

小表驅動大表

在表連接過程中。一般選擇小表作為驅動表,大表作為被驅動表。

驅動表(小表)的連接字段無論建立沒建立索引都需要全表掃描的。被驅動表(大表)如果在連接字段建立了索引,則可以走索引。如果沒有建立索引則也需要全表掃描。


兩張表連接的情況

被驅動表的連接字段有索引:主鍵索引

對于驅動表中的每一條數據,到被驅動表的聚簇索引上尋找其對應的數據。

被驅動表的連接字段有索引:二級索引

對于驅動表上的每一條數據,到被驅動表的二次索引上尋找其對應的數據id,然后再根據數據id到聚簇索引上尋找對應的數據。

被驅動表的連接字段沒有索引

對于驅動表上的每一條數據,都要到被驅動表上進行一次全表遍歷,找到對應的數據。

join buffer的作用

就是針對被驅動表的連接字段沒有索引的情況下需要進行全表掃描,所以引入了join buffer內存緩沖區來對這個全表掃描過程進行優化。

impossible where

where子句總是false,不能用來獲取任何元素。即篩選條件沒能篩選出任何數據。

select tables optimized away

在沒有 GROUPBY 子句的情況下,基于索引優化 MIN/MAX操作。

distinct

優化 distinct操作。在找到第一匹配的時候就停止找同樣的動作。

責任編輯:姜華 來源: 今日頭條
相關推薦

2023-03-30 08:28:57

explain關鍵字MySQL

2024-03-15 11:52:03

C++關鍵字編程

2021-01-04 15:42:37

SQL索引Explain

2011-08-23 13:16:41

SQLEXPLAIN

2009-09-02 09:24:03

C# this關鍵字

2013-01-30 10:12:14

Pythonyield

2021-02-01 13:10:07

Staticc語言UNIX系統

2011-06-14 13:26:27

volatile

2022-11-12 18:32:50

Golangomitemptyjson

2019-12-20 15:19:41

Synchroinze線程安全

2025-06-13 08:00:00

Java并發編程volatile

2009-09-28 11:34:49

Javascript

2021-07-27 07:31:16

單例模式關鍵字

2009-12-18 11:37:54

Ruby關鍵字yiel

2010-02-05 15:51:06

C++ explici

2017-05-27 20:59:30

Java多線程synchronize

2023-03-09 07:38:58

static關鍵字狀態

2021-03-17 09:35:51

MySQL數據庫explain

2010-07-23 14:32:43

SQL Server

2011-02-25 14:42:10

SQLwith關鍵字
點贊
收藏

51CTO技術棧公眾號

日本中文在线观看| aaa在线视频| 久久99国产精品久久99大师| 色哟哟在线观看一区二区三区| 无码免费一区二区三区免费播放| 国产乱人乱偷精品视频| 亚洲国产精品第一区二区| 91影院在线免费观看| 青青久久aⅴ北条麻妃| 日本泡妞xxxx免费视频软件| 青青青免费在线视频| 国产在线精品一区二区三区不卡| 国产一区二区三区18| 中文字幕中文在线| 韩国主播福利视频一区二区三区| 综合分类小说区另类春色亚洲小说欧美| 高清不卡日本v二区在线| 国产亚洲欧美在线精品| 尤物tv在线精品| 7777精品伊人久久久大香线蕉最新版 | 伊人狠狠色丁香综合尤物| 亚洲乱码精品久久久久..| 91亚洲一区| 日韩成人av一区| 男人午夜视频在线观看| 中文字幕av一区二区三区佐山爱| 夜夜操天天操亚洲| 一区二区三区在线视频111| 日韩porn| 日韩和欧美一区二区| 欧美日本国产在线| 亚洲天堂网av在线| 成人羞羞网站入口| 亚洲精选一区二区| 超碰caoprom| 91蝌蚪精品视频| 91精品国产一区二区| 日本美女高潮视频| 日韩网站中文字幕| 欧美性xxxx在线播放| 九一国产精品视频| 国产后进白嫩翘臀在线观看视频| 中文字幕亚洲电影| 亚洲午夜精品一区二区三区| 高清日韩av电影| 老司机精品视频在线| 国产91色在线|| 亚洲GV成人无码久久精品| 亚洲网站啪啪| 久久久久这里只有精品| 免费看一级一片| 精品91在线| 高清一区二区三区四区五区| 久久婷婷一区二区| 黄色av成人| 久久久久久成人精品| 久久久综合久久久| 精品电影一区| 国内精品视频久久| 日韩av大片在线观看| av中字幕久久| 这里只有精品久久| 欧美激情久久久久久久| 99国产精品免费视频观看| 日韩在线欧美在线国产在线| 国产一二三区精品| 欧美jizzhd精品欧美巨大免费| 欧美精品在线网站| 国产午夜福利精品| 免费在线欧美黄色| 国产精品美女呻吟| 国产影视一区二区| 国产91精品一区二区| 国产一区二区免费在线观看| www.色国产| 日本成人超碰在线观看| 91精品国产综合久久久久久久久 | 欧美成人福利视频| 中文字幕免费高清视频| 亚洲自拍电影| 中文字幕av一区二区| 暗呦丨小u女国产精品| 亚洲高清二区| 国产精品久久久久av| 国产精品国产av| 99麻豆久久久国产精品免费| 日本中文不卡| 日本片在线看| 色播五月激情综合网| 久久久久久综合网| 成人性生交大片免费看中文视频| 亚洲欧洲激情在线| 国产福利拍拍拍| 国内精品视频在线观看| 日韩在线小视频| 久久精品www| 日韩高清欧美激情| 97超碰最新| 国产福利在线看| 一区二区三区成人| 人妻无码视频一区二区三区| 香蕉成人app| 国产亚洲一区精品| 久久久久亚洲av成人片| 蜜臀av一区二区在线观看| 电影午夜精品一区二区三区| 国产理论电影在线观看| 亚洲一区av在线| 日韩爱爱小视频| 日韩专区av| 色婷婷综合久色| av在线天堂网| 久久国产小视频| 欧美亚洲成人xxx| 国产国语亲子伦亲子| 国产欧美一区二区精品性色超碰| 黄色三级中文字幕| 少女频道在线观看高清| 91激情在线视频| yy6080午夜| 欧美搞黄网站| 国产欧美在线观看| 国产视频三级在线观看播放| 欧美专区福利免费| 一区二区成人在线视频| 91精品国产自产在线观看永久| 黄色片一区二区三区| 国产精品久久久久三级| 日本一区二区三区www| 成人午夜影视| 大桥未久av一区二区三区| 中国老熟女重囗味hdxx| 欧美高清在线| 国产精品丝袜久久久久久不卡| 久青青在线观看视频国产| 性久久久久久久| 久久国产劲爆∧v内射| 亚洲成人免费| 国产欧美一区二区| 免费网站看v片在线a| 欧美丝袜丝nylons| 久久丫精品忘忧草西安产品| 久久久久综合| 欧美精品尤物在线| 色8久久影院午夜场| 亚洲欧美日韩第一区| 毛片视频网站在线观看| 成人久久视频在线观看| 久久人人97超碰人人澡爱香蕉| 伊人222成人综合网| 日韩欧美激情四射| 日韩激情一区二区三区| 成人黄色在线看| 国产视频一视频二| 免费看日本一区二区| 国产成人精品在线| 国产黄色免费在线观看| 欧美网站大全在线观看| 香蕉久久久久久久| 国产麻豆精品视频| 欧美性潮喷xxxxx免费视频看| av一级亚洲| 热re99久久精品国产66热| 亚洲人成色777777精品音频| 一本一本大道香蕉久在线精品 | 久久久免费av| 午夜黄色小视频| 在线观看一区日韩| 国产精品suv一区二区88| 国内精品不卡在线| 男人天堂a在线| 尤物tv在线精品| 国产精品欧美一区二区三区奶水| 韩国中文字幕在线| 精品91自产拍在线观看一区| 无码人妻丰满熟妇奶水区码| 国产欧美一区视频| 九九热视频免费| 日韩午夜av| 成人福利视频网| 国产黄色av片| 国产精品网站在线播放| 另类小说色综合| 9999国产精品| 国产高清一区视频| 三上悠亚亚洲一区| 美女精品视频一区| 亚洲欧美日韩免费| 欧美精品亚洲一区二区在线播放| 久久久久久国产精品视频| 久久亚洲春色中文字幕久久久| 免费看国产黄色片| 黄色成人91| 一区二区91美女张开腿让人桶| 超碰成人在线观看| 国产精品永久免费| 国产精品蜜臀| www.xxxx欧美| 神马亚洲视频| 亚洲va欧美va人人爽| 久久精品—区二区三区舞蹈| 国产精品一区二区不卡| 男女av免费观看| 欧美婷婷在线| 一本久久a久久精品vr综合| 久久国产精品色av免费看| 国产精品自产拍在线观看中文| www.51av欧美视频| 伦伦影院午夜日韩欧美限制| 一级黄色片免费看| 欧美日韩亚洲国产一区| wwwav国产| 中文欧美字幕免费| 在线 丝袜 欧美 日韩 制服| 成人免费福利片| 久久人人爽人人片| 美国十次了思思久久精品导航| 欧美精品自拍视频| 日韩中文av| 亚洲影院污污.| 香蕉久久一区| 国产精品高潮呻吟久久av野狼| 国产99在线| 欧美日本亚洲视频| 国产精品一区二区三区视频网站| 正在播放欧美一区| 男操女在线观看| 亚洲男人的天堂网站| 日韩一区二区三区不卡| 日韩欧美一区中文| 国产女人高潮的av毛片| 91超碰这里只有精品国产| 色一情一乱一伦| 欧美日韩精品在线视频| 欧美精品亚洲精品日韩精品| 亚洲成人黄色影院| 国产精品黄色网| 婷婷中文字幕一区三区| 日本道在线观看| 大伊人狠狠躁夜夜躁av一区| 国产在线观看黄色| 欧美色道久久88综合亚洲精品| 日本一区二区网站| 午夜久久久久久| 国产在线观看免费av| 婷婷丁香激情综合| 亚洲黄色三级视频| 日韩欧美在线国产| 免费观看日批视频| 欧美性生活大片视频| 在线观看中文字幕2021| 91精品国产综合久久久久久久久久| 在线免费观看av片| 欧美一区二区在线观看| 91免费视频播放| 日韩一区二区免费视频| 国产国语亲子伦亲子| 欧美精品一区二区三区在线播放| 色欲久久久天天天综合网| 国产视频久久网| 成人高清免费观看mv| 久久亚洲春色中文字幕| 蜜臀av国内免费精品久久久夜夜| 国内久久久精品| 高清电影一区| 国产日韩在线精品av| 亚洲高清在线一区| 精品卡一卡二| 第一会所亚洲原创| 女女百合国产免费网站| 亚洲黄网站黄| 毛葺葺老太做受视频| 国产呦萝稀缺另类资源| 中文字幕第九页| 国产日产精品一区| 日本三级日本三级日本三级极| aa级大片欧美| 免费黄色在线网址| 亚洲制服丝袜av| 天天爽夜夜爽人人爽| 欧美精品久久天天躁| 后入内射欧美99二区视频| 在线观看91久久久久久| 日本伦理一区二区| 国产91免费看片| 日本成人精品| 日本婷婷久久久久久久久一区二区| 亚洲欧洲日韩| 亚洲精品无码久久久久久| 国产综合色在线| 精品人妻无码一区二区三区 | 亚洲一区二区伦理| 色啦啦av综合| 99久久久国产精品免费蜜臀| 国产一区二区三区视频播放| 香蕉乱码成人久久天堂爱免费| 中文字幕av片| 亚洲精品98久久久久久中文字幕| a√资源在线| 91成人在线观看国产| 亚洲色图综合| 欧美日韩亚洲在线| 国内精品久久久久久久影视蜜臀 | 中国一级大黄大黄大色毛片| 久久不射中文字幕| 好吊操视频这里只有精品| 中文字幕免费不卡在线| 精品美女久久久久| 日韩欧美国产一区在线观看| av在线电影观看| 奇米四色中文综合久久| 亚洲一区二区免费在线观看| 亚洲精品在线观看免费| 日产精品一区二区| www.av中文字幕| 国产成人高清在线| 久草福利资源在线| 欧美自拍偷拍一区| 秋霞av在线| 91国产精品视频在线| av一级亚洲| 黄色a级片免费看| 国产一区在线视频| 青青操在线视频观看| 欧美性受xxxx| 超碰国产在线| 国产成人精品一区二区| 一区二区三区视频免费观看| 国产69精品久久久久久久| 成人av网站在线观看免费| 青青草原在线免费观看视频| 777xxx欧美| a毛片在线播放| 亚洲最大的成人网| 在线成人直播| 成年人看片网站| 亚洲精品欧美在线| av中文字幕播放| 九九视频直播综合网| 精品国产鲁一鲁****| 久久99国产精品一区| 国产一区二区0| 久久久国产精品黄毛片| 欧美成人精精品一区二区频| 好吊日av在线| 精品无码久久久久国产| 国产欧美不卡| 精品人妻一区二区三区蜜桃视频| 一本大道综合伊人精品热热| 成年人在线免费观看| 国产精品视频一| 99久久婷婷| 日本黄色三级网站| 亚洲国产精品久久艾草纯爱| 天天色综合av| 国产不卡av在线免费观看| 日韩精品免费| www.久久com| 亚洲高清一区二区三区| 四虎精品成人影院观看地址| 人妖精品videosex性欧美| 青青草原综合久久大伊人精品 | www.国产com| 亚洲最新中文字幕| 国产午夜久久av| 欧美日韩亚洲在线| 蜜桃久久久久久| 亚洲国产美女视频| 亚洲国产黄色片| 欧美成人精品三级网站| 中文字幕99| 9人人澡人人爽人人精品| 7799精品视频天天看| xxx一区二区| 欧美影院天天5g天天爽| 黄色三级视频片| 夜夜揉揉日日人人青青一国产精品 | av老司机免费在线| 欧美一区二区三区电影在线观看| 久久国产麻豆精品| 久久久久香蕉视频| 伊是香蕉大人久久| japanese色系久久精品| caoporn超碰97| 1024亚洲合集| 亚洲色图另类小说| 91久久国产精品91久久性色| 亚洲精品1区2区| 黄色录像一级片| 精品亚洲一区二区三区在线观看| 国产成人77亚洲精品www| 免费特级黄色片| 国产精品视频在线看| 色窝窝无码一区二区三区成人网站| 国产精品一区二区三区成人| 亚洲福利国产| 欧美视频www| 中文字幕日韩欧美在线| 色天下一区二区三区| 日韩av影视大全|