成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL執行計劃Explain詳解

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

什么是執行計劃

使用 EXPLAIN 關鍵字可以模擬優化器執行 SQL 查詢語句,從而知道 MySQL 是如何處理你的 SQL 語句的。分析你的查詢語句或是表結構的性能瓶頸

執行計劃的作用

  1. 表的讀取順序
  2. 數據讀取操作的操作類型
  3. 哪些索引可以使用
  4. 哪些索引被實際使用
  5. 表之間的引用
  6. 每張表有多少行被優化器查詢

執行計劃的語法

執行計劃的語法其實非常簡單:在SQL 查詢的前面加上 EXPLAIN 關鍵字就行。

EXPLAIN select * from table1

重點的就是 EXPLAIN 后面你要分析的 SQL 語句

執行計劃詳解

通過 EXPLAIN 關鍵分析的結果由以下列組成,接下來挨個分析每一個列

一、ID 列

ID 列:描述 select 查詢的序列號,包含一組數字,表示查詢中執行 select 子句或操作表的順序

根據 ID 的數值結果可以分成以下三種情況

  • id 相同:執行順序由上至下
  • id 不同:如果是子查詢,id 的序號會遞增,id 值越大優先級越高,越先被執行
  • id 相同又不同:同時存在

分別舉例來看

Id 相同

如上圖所示,ID 列的值全為 1,代表執行的允許從 t1 開始加載,依次為 t3 與 t2

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 列

Select_type:查詢的類型,

要是用于區別:普通查詢、聯合查詢、子查詢等的復雜查詢

類型如下

三、table 列

顯示這一行的數據是關于哪張表的

四、Type 列

type 顯示的是訪問類型,是較為重要的一個指標,結果值從最好到最壞依次是:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery >

index_subquery > range > index > ALL

需要記憶的:system>const>eq_ref>ref>range>index>ALL

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

System 與 const

System:表只有一行記錄(等于系統表),這是 const 類型的特例,平時不會出現,這個也可以忽略不計

Const:表示通過索引一次就找到了。const 用于比較 primary key 或者 unique 索引。因為只匹配一行數據,所以很快如將主鍵置于 where 列表中,MySQL 就能將該查詢轉換為一個常量

eq_ref

唯一性索引掃描,對于每個索引鍵,表中只有一條記錄與之匹配。常見于主鍵或唯一索引掃描

Ref

非唯一性索引掃描,返回匹配某個單獨值的所有行。

本質上也是一種索引訪問,它返回所有匹配某個單獨值的行,然而,它可能會找到多個符合條件的行,所以他應該屬于查找和掃描的混合體

Range

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

Index

當查詢的結果全為索引列的時候,雖然也是全部掃描,但是只查詢的索引庫,而沒有去查詢

數據

All

Full Table Scan,將遍歷全表以找到匹配的行

五、possible_keys 與 Key列

possible_keys:可能使用的 key

Key:實際使用的索引。如果為 NULL,則沒有使用索引

查詢中若使用了覆蓋索引,則該索引和查詢的 select 字段重疊

EXPLAIN select col1,col2 from t1

其中 key 和 possible_keys 都可以出現 null 的情況(結婚邀請朋友的例子)

六、key_len列

desc
select * from ta where col1 ='ab';
desc
select * from ta where col1 ='ab' and col2 = 'ac'

Key_len 表示索引中使用的字節數,可通過該列計算查詢中使用的索引的長度。在不損失精

確性的情況下,長度越短越好

key_len 顯示的值為索引字段的最大可能長度,并非實際使用長度,即 key_len 是根據表定義計算而得,不是通過表內檢索出的

  • key_len 表示索引使用的字節數,
  • 根據這個值,就可以判斷索引使用情況,特別是在組合索引的時候,判斷所有的索引字段是否都被查詢用到。
  • char 和 varchar 跟字符編碼也有密切的聯系,
  • latin1 占用 1 個字節,gbk 占用 2 個字節,utf8 占用 3 個字節。(不同字符編碼占用的
  • 存儲空間不同)

七、Ref列

顯示索引的哪一列被使用了,如果可能的話,是一個常數。哪些列或常量被用于查找索引列上的值

EXPLAIN
select * from s1 ,s2 where s1.id = s2.id and s1.name = 'enjoy'

由 key_len 可知 t1 表的 idx_col1_col2 被充分使用,col1 匹配 t2 表的 col1,col2 匹配了一個常量,即 'ac'其中 【shared.t2.col1】 為 【數據庫.表.列】

八、Rows

根據表統計信息及索引選用情況,大致估算出找到所需的記錄所需要讀取的行數

九、Extra

包含不適合在其他列中顯示但十分重要的額外信息。


責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-02-20 08:40:19

HiveExplain底層

2024-09-12 15:16:14

2021-03-17 09:35:51

MySQL數據庫explain

2022-02-15 07:36:21

SQLEXPLAIN數據庫

2025-03-12 10:55:30

2025-01-24 14:57:24

2021-05-28 10:46:36

MySQL執行計劃

2022-08-08 08:03:44

MySQL數據庫CBO

2011-09-14 17:03:17

數據庫執行計劃解析

2020-05-21 10:02:51

Explain SQL優化

2020-09-15 08:44:57

MySQL慢日志SQL

2021-04-24 12:01:08

MySQL數據庫Mysql執行計劃

2017-07-27 20:00:47

MySQLEXPLAIN命令

2015-04-22 14:17:45

SQL SERVERMSSQL SERVE緩沖區

2018-02-27 14:00:35

數據庫MySQL統計信息

2017-11-15 08:50:59

數據庫MySQL

2009-11-13 16:28:02

Oracle生成執行計

2021-11-09 07:59:50

開發

2010-04-16 09:27:18

Ocacle執行計劃

2009-11-18 17:05:47

捕獲Oracle SQ
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 三级av网址 | 一区二区三区四区国产 | 老司机免费视频 | 国产精品成人品 | 精品1区2区| 国产在线精品一区二区三区 | 精品一区二区三区四区五区 | 欧美无乱码久久久免费午夜一区 | 亚洲一区二区高清 | 亚洲欧美日韩在线 | av国产在线观看 | 欧洲一区二区在线 | 中文字幕成人 | 97视频网站| 国产成人自拍av | 久久精品国产免费 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 一区二区成人 | 成人免费网站www网站高清 | 九九av | 欧美性生活网 | 亚洲国产中文在线 | 日韩成人免费视频 | av片在线免费看 | 国产精品91久久久久久 | 激情91 | 日韩三级在线 | 毛片在线免费 | 欧美激情亚洲 | 成人免费在线视频 | 成人精品一区二区三区中文字幕 | 国产乱码精品一区二区三区中文 | 成年人的视频免费观看 | 国产精品日日做人人爱 | 欧美成视频 | 国产精品一区二区三区久久久 | 中文字幕视频在线观看 | 久久成人免费 | 久久久久久综合 | av毛片在线免费观看 | 国产精品一级在线观看 |