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

主頁 > 知識庫 > MySQL EXPLAIN輸出列的詳細解釋

MySQL EXPLAIN輸出列的詳細解釋

熱門標簽:呂梁外呼系統 南太平洋地圖標注 大豐地圖標注app 400電話變更申請 400電話辦理服務價格最實惠 武漢電銷機器人電話 北京金倫外呼系統 html地圖標注并導航 催天下外呼系統

1. 簡介

EXPLAIN語句提供有關 MySQL 如何執行語句的信息。

EXPLAIN與SELECT、DELETE、INSERT、REPLACE和UPDATE語句一起使用。

mysql> EXPLAIN SELECT * FROM employees WHERE emp_no = 10001;
+----+-------------+-----------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
| id | select_type | table     | partitions | type  | possible_keys | key     | key_len | ref   | rows | filtered | Extra |
+----+-------------+-----------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
|  1 | SIMPLE      | employees | NULL       | const | PRIMARY       | PRIMARY | 4       | const |    1 |   100.00 | NULL  |
+----+-------------+-----------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

簡單來講,通過EXPLAIN可以分析出SQL語句走沒走索引,走的是什么索引。

EXPLAIN為SELECT語句中使用的每個表返回一行信息,它按照 MySQL 在處理語句時讀取它們的順序列出了輸出中的表。

MySQL 使用嵌套循環連接(Nested-Loop Join Algorithms)解析所有連接,這意味著 MySQL 從第一個表中讀取一行,然后在第二個表,第三個表中找到匹配的行,依此類推。處理完所有表后,MySQL將通過表列表輸出選定的列后回溯直到找到一個表,其中存在更多匹配的行。從該表中讀取下一行,然后繼續下一個表。

2.EXPLAIN 輸出列

  • MySQL版本 5.7.33
  • Windows10 64位

從上圖看到 EXPLAIN 的結果中,包括的表頭id、select_type、table、partitions、type、possible_keys、key、key_len、ref、rows、filtered、Extra,這些字段的意思我們來學習然后通過實例進行了解一下。

2.1 id

SELECT 標識符,查詢中 SELECT 的順序號。如果該行引用其他行的并集結果,則該值可以為NULL。在這種情況下,表列顯示類似unionM,N>的值,以指示該行引用 id 值為 M 和 N 的行的并集。

id 值分三種情況:

id 相同,執行順序由上至下

mysql> EXPLAIN (
    -> SELECT * FROM employees emp
    -> LEFT JOIN dept_emp de ON emp.emp_no = de.emp_no
    -> LEFT JOIN departments dept ON dept.dept_no = de.dept_no
    -> WHERE emp.emp_no = 10001);
+----+-------------+-------+------------+--------+---------------+---------+---------+----------------------+------+----------+-------+
| id | select_type | table | partitions | type   | possible_keys | key     | key_len | ref                  | rows | filtered | Extra |
+----+-------------+-------+------------+--------+---------------+---------+---------+----------------------+------+----------+-------+
|  1 | SIMPLE      | emp   | NULL       | const  | PRIMARY       | PRIMARY | 4       | const                |    1 |   100.00 | NULL  |
|  1 | SIMPLE      | de    | NULL       | ref    | PRIMARY       | PRIMARY | 4       | const                |    1 |   100.00 | NULL  |
|  1 | SIMPLE      | dept  | NULL       | eq_ref | PRIMARY       | PRIMARY | 12      | employees.de.dept_no |    1 |   100.00 | NULL  |
+----+-------------+-------+------------+--------+---------------+---------+---------+----------------------+------+----------+-------+
3 rows in set, 1 warning (0.03 sec)

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

mysql> EXPLAIN SELECT * FROM employees emp
    -> WHERE emp.emp_no NOT IN ( SELECT de.emp_no FROM dept_emp de 
    -> WHERE de.dept_no NOT IN ( SELECT dept_no FROM departments WHERE dept_name = 'Development'));
+----+-------------+-------------+------------+-------+-------------------+-----------+---------+-------+--------+----------+--------------------------+
| id | select_type | table       | partitions | type  | possible_keys     | key       | key_len | ref   | rows   | filtered | Extra                    |
+----+-------------+-------------+------------+-------+-------------------+-----------+---------+-------+--------+----------+--------------------------+
|  1 | PRIMARY     | emp         | NULL       | ALL   | NULL              | NULL      | NULL    | NULL  | 299468 |   100.00 | Using where              |
|  2 | SUBQUERY    | de          | NULL       | index | PRIMARY           | dept_no   | 12      | NULL  | 308493 |   100.00 | Using where; Using index |
|  3 | SUBQUERY    | departments | NULL       | const | PRIMARY,dept_name | dept_name | 122     | const |      1 |   100.00 | Using index              |
+----+-------------+-------------+------------+-------+-------------------+-----------+---------+-------+--------+----------+--------------------------+
3 rows in set, 1 warning (0.00 sec)

id相同和不相同都存在

如果id相同可以認為是一組,同一組id執行順序由上至下,不同組之間,id值越大被執行的優先級越高。

mysql> EXPLAIN SELECT * FROM employees emp
    -> WHERE emp.emp_no IN ( SELECT de.emp_no FROM dept_emp de 
    -> WHERE de.dept_no IN ( SELECT dept_no FROM departments WHERE dept_name LIKE '%Develop%'));
+----+--------------+-------------+------------+-------+-----------------+-----------+---------+-------------------------------+--------+----------+----------------------------------------------------+
| id | select_type  | table       | partitions | type  | possible_keys   | key       | key_len | ref                           | rows   | filtered | Extra                                              |
+----+--------------+-------------+------------+-------+-----------------+-----------+---------+-------------------------------+--------+----------+----------------------------------------------------+
|  1 | SIMPLE       | subquery2> | NULL       | ALL   | NULL            | NULL      | NULL    | NULL                          |   NULL |   100.00 | NULL                                               |
|  1 | SIMPLE       | emp         | NULL       | ALL   | PRIMARY         | NULL      | NULL    | NULL                          | 299468 |     0.00 | Using where; Using join buffer (Block Nested Loop) |
|  2 | MATERIALIZED | departments | NULL       | index | PRIMARY         | dept_name | 122     | NULL                          |      9 |    11.11 | Using where; Using index                           |
|  2 | MATERIALIZED | de          | NULL       | ref   | PRIMARY,dept_no | dept_no   | 12      | employees.departments.dept_no |  38561 |   100.00 | Using index                                        |
+----+--------------+-------------+------------+-------+-----------------+-----------+---------+-------------------------------+--------+----------+----------------------------------------------------+
4 rows in set, 1 warning (0.01 sec)

2.2 select_type

查詢的類型,主要用來區別普通查詢,聯合查詢,子查詢等復雜查詢。

包含SIMPLE、PRIMARY、UNION、DEPENDENT UNION、UNION RESULT、SUBQUERY、DEPENDENT SUBQUERY、DERIVED、MATERIALIZED、UNCACHEABLE SUBQUERY、UNCACHEABLE UNION

SIMPLE

簡單的SELECT,不使用UNION或子查詢。

mysql> EXPLAIN select * from employees where emp_no=10001;
+----+-------------+-----------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
| id | select_type | table     | partitions | type  | possible_keys | key     | key_len | ref   | rows | filtered | Extra |
+----+-------------+-----------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
|  1 | SIMPLE      | employees | NULL       | const | PRIMARY       | PRIMARY | 4       | const |    1 |   100.00 | NULL  |
+----+-------------+-----------+------------+-------+---------------+---------+---------+-------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

PRIMARY

查詢中若包含任何復雜的子部分,最外層的查詢則被標記為PRIMARY

mysql> EXPLAIN SELECT * FROM employees emp
    -> WHERE emp.emp_no IN ( SELECT max(emp_no) FROM dept_emp);
+----+--------------------+-------+------------+------+---------------+------+---------+------+--------+----------+------------------------------+
| id | select_type        | table | partitions | type | possible_keys | key  | key_len | ref  | rows   | filtered | Extra                        |
+----+--------------------+-------+------------+------+---------------+------+---------+------+--------+----------+------------------------------+
|  1 | PRIMARY            | emp   | NULL       | ALL  | NULL          | NULL | NULL    | NULL | 299468 |   100.00 | Using where                  |
|  2 | DEPENDENT SUBQUERY | NULL  | NULL       | NULL | NULL          | NULL | NULL    | NULL |   NULL |     NULL | Select tables optimized away |
+----+--------------------+-------+------------+------+---------------+------+---------+------+--------+----------+------------------------------+
2 rows in set, 1 warning (0.00 sec)

UNION

第二個或更靠后的 SELECT 語句出現在 UNION 之后,則被標記為 UNION

mysql> EXPLAIN (SELECT emp_no,dept_no FROM dept_emp LIMIT 10)
    -> UNION
    -> SELECT emp_no,dept_no FROM dept_manager;
+----+--------------+--------------+------------+-------+---------------+---------+---------+------+--------+----------+-----------------+
| id | select_type  | table        | partitions | type  | possible_keys | key     | key_len | ref  | rows   | filtered | Extra           |
+----+--------------+--------------+------------+-------+---------------+---------+---------+------+--------+----------+-----------------+
|  1 | PRIMARY      | dept_emp     | NULL       | index | NULL          | dept_no | 12      | NULL | 308493 |   100.00 | Using index     |
|  2 | UNION        | dept_manager | NULL       | index | NULL          | dept_no | 12      | NULL |     24 |   100.00 | Using index     |
| NULL | UNION RESULT | union1,2>   | NULL       | ALL   | NULL          | NULL    | NULL    | NULL |   NULL |     NULL | Using temporary |
+----+--------------+--------------+------------+-------+---------------+---------+---------+------+--------+----------+-----------------+
3 rows in set, 1 warning (0.00 sec)

DEPENDENT UNION

與 UNION 相同,它出現在 UNION 或 UNION ALL語句中,但是此查詢受外部查詢的影響

| UNION RESULT union_result Result of a UNION.
| SUBQUERY None First SELECT in subquery
| DEPENDENT SUBQUERY dependent (true) First SELECT in subquery, dependent on outer query
| DERIVED None Derived table
| MATERIALIZED materialized_from_subquery Materialized subquery
| UNCACHEABLE SUBQUERY cacheable (false) A subquery for which the result cannot be cached and must be re-evaluated for each row of the outer query
| UNCACHEABLE UNION cacheable (false) The second or later select in a UNION that belongs to an uncacheable subquery (see UNCACHEABLE SUBQUERY)

總結

到此這篇關于MySQL EXPLAIN輸出列的文章就介紹到這了,更多相關MySQL EXPLAIN輸出列內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL查詢優化之explain的深入解析
  • mysql中explain用法詳解
  • mysql總結之explain
  • MySQL性能分析及explain的使用說明
  • Mysql中explain作用詳解
  • mysql之explain使用詳解(分析索引)
  • 詳解MySQL中EXPLAIN解釋命令及用法講解
  • MySQL中執行計劃explain命令示例詳解
  • MYSQL explain 執行計劃
  • MySQL中EXPLAIN命令詳解

標簽:無錫 西寧 南充 龍巖 麗水 迪慶 徐州 自貢

巨人網絡通訊聲明:本文標題《MySQL EXPLAIN輸出列的詳細解釋》,本文關鍵詞  MySQL,EXPLAIN,輸,出列,的,詳細,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL EXPLAIN輸出列的詳細解釋》相關的同類信息!
  • 本頁收集關于MySQL EXPLAIN輸出列的詳細解釋的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    2023国产一二三区日本精品2022| 国产福利一区在线| 奇米影视一区二区三区小说| 成人综合婷婷国产精品久久免费| 精品日韩在线一区| 麻豆视频观看网址久久| 欧美精品丝袜中出| 亚洲在线视频免费观看| 色综合一区二区| 久久综合国产精品| 日韩1区2区3区| 精品久久人人做人人爱| 久久国产剧场电影| 国产欧美精品国产国产专区| 成人小视频在线| 亚洲嫩草精品久久| 欧美一区二区三区四区久久| 蜜桃av一区二区在线观看| 日韩久久免费av| 粗大黑人巨茎大战欧美成人| 亚洲精品v日韩精品| 欧美肥胖老妇做爰| 国产呦萝稀缺另类资源| 中文字幕一区二区三中文字幕| 91福利视频在线| 久久精品72免费观看| 中文字幕在线不卡一区二区三区| 欧美在线啊v一区| 韩国欧美国产一区| 一区二区三区日韩欧美| 欧美精品一区二区三区一线天视频| 国产东北露脸精品视频| 亚洲综合成人在线视频| 国产亚洲1区2区3区| 欧美日韩一区精品| 成人免费观看av| 日韩高清国产一区在线| 亚洲欧洲日产国产综合网| 日韩一区二区三| 色婷婷av一区二区三区之一色屋| 日本免费新一区视频| 亚洲欧洲性图库| 日韩免费观看高清完整版在线观看| bt欧美亚洲午夜电影天堂| 久久精品国产99久久6| 亚洲一区二区偷拍精品| 国产精品视频一二三区| 日韩欧美不卡在线观看视频| 欧美在线视频你懂得| 成人中文字幕合集| 狠狠狠色丁香婷婷综合久久五月| 夜夜嗨av一区二区三区四季av| 国产亚洲一本大道中文在线| 91精品国产高清一区二区三区| 99久久精品免费看| 处破女av一区二区| 国产高清不卡一区二区| 国产麻豆午夜三级精品| 久久精品国产色蜜蜜麻豆| 亚洲成人手机在线| 亚洲免费色视频| 国产精品嫩草99a| 久久久久久久综合色一本| 欧美日本一道本| 欧美日韩一区高清| 91麻豆精品国产91久久久久久| 欧美三级在线播放| 欧美日韩国产精选| 欧美日本在线视频| 91精品国产手机| 欧美一区二区三区四区久久| 欧美一区二区视频网站| 欧美一区二区三区在线电影| 欧美丰满美乳xxx高潮www| 欧美一区二区福利在线| 欧美军同video69gay| 91精品国产欧美一区二区18| 日韩一区二区电影在线| 精品精品国产高清a毛片牛牛 | 奇米四色…亚洲| 亚洲综合av网| 亚州成人在线电影| 另类成人小视频在线| 国产乱码一区二区三区| 成人黄动漫网站免费app| 成人免费视频一区二区| 色婷婷香蕉在线一区二区| 91成人在线观看喷潮| 91精品欧美一区二区三区综合在 | 国产精品综合久久| 久久精品国产99国产精品| 丁香天五香天堂综合| 91久久精品一区二区三区| 欧美精品vⅰdeose4hd| 91精品国产aⅴ一区二区| 国产色一区二区| 中文字幕中文字幕一区| 亚洲国产中文字幕在线视频综合 | 91福利在线观看| 欧美一级高清片在线观看| 国产欧美日韩精品a在线观看| 成人免费在线播放视频| 视频一区视频二区在线观看| 国产精品一区二区在线观看网站| 成人中文字幕在线| 欧美一区二区二区| 中文字幕一区视频| 日本sm残虐另类| 91在线免费视频观看| 日韩你懂的在线播放| 1024成人网| 国产乱码精品一区二区三区忘忧草| 欧美日韩精品免费| 国产精品欧美一区二区三区| 日本中文在线一区| 色综合久久久久综合体| 久久久影视传媒| 一级中文字幕一区二区| 国产精品一区二区久久精品爱涩| 色天使色偷偷av一区二区| 国产清纯在线一区二区www| 日韩精品五月天| 91啪九色porn原创视频在线观看| 精品久久久久99| 亚洲国产成人av好男人在线观看| 成人黄色电影在线| 国产亚洲一区字幕| 国产一区二区导航在线播放| 91精品国产高清一区二区三区| 亚洲素人一区二区| 成人午夜电影网站| 精品区一区二区| 天天做天天摸天天爽国产一区| 99视频在线观看一区三区| 国产欧美一区二区精品性色| 另类小说图片综合网| 日韩欧美另类在线| 日本美女一区二区三区| 欧美日韩成人综合| 日韩激情av在线| 欧美一级久久久| 日本不卡一区二区三区| 欧美日韩美女一区二区| 亚洲国产视频a| 欧美日本韩国一区二区三区视频| 亚洲在线成人精品| 欧美精品色综合| 天堂久久一区二区三区| 精品一区二区三区视频| 久久99国产精品久久99| 亚洲成av人影院在线观看网| 91国在线观看| 亚洲第一主播视频| 在线一区二区三区四区五区| 亚洲国产精品天堂| 6080午夜不卡| 麻豆91精品视频| 一区av在线播放| 色噜噜夜夜夜综合网| 一区二区三区日韩在线观看| 欧美另类videos死尸| 日产国产高清一区二区三区| 精品国产凹凸成av人导航| 国产一区999| 日本一区二区三区免费乱视频 | 精品国内二区三区| 国产成人免费在线视频| 国产精品久久久久久久久动漫| 91热门视频在线观看| 日韩不卡一区二区三区| 国产亚洲欧洲997久久综合 | 精品国产乱码久久久久久1区2区| 高清beeg欧美| 国产精品久久久99| 欧美日韩一区二区在线观看视频| 亚洲国产精品综合小说图片区| 日韩三级高清在线| av欧美精品.com| 偷拍亚洲欧洲综合| 国产精品女主播av| 在线亚洲高清视频| 国产一区二区免费在线| 久久99精品久久久久久久久久久久| 国产在线观看免费一区| 亚洲视频一区二区在线| 欧美一区二区日韩一区二区| 成人污视频在线观看| 日韩在线a电影| 中文字幕一区二区三区色视频| 一区二区三区日韩精品视频| 亚洲欧美日韩国产综合| 欧美一区二区视频在线观看2020| 成人av在线观| 久久99久久99小草精品免视看| 亚洲欧美激情一区二区| 亚洲精品在线观看网站| 欧美视频精品在线| 91在线码无精品| 日韩精品中文字幕一区二区三区| 亚洲亚洲精品在线观看|