MySQL查詢分析器EXPLAIN或DESC_MySQL
來源:懂視網(wǎng)
責(zé)編:小采
時間:2020-11-09 18:20:55
MySQL查詢分析器EXPLAIN或DESC_MySQL
MySQL查詢分析器EXPLAIN或DESC_MySQL:MySQLexplain bitsCN.com MySQL查詢分析器EXPLAIN或DESC MySQL可以通過EXPLAIN或DESC來查看并分析SQL語句的執(zhí)行情況,如下需要計算2006年所有公司的銷售額,需要關(guān)聯(lián)sales表和company表,并且對money字段做求和操作,相應(yīng)SQL如下: Sql代碼
導(dǎo)讀MySQL查詢分析器EXPLAIN或DESC_MySQL:MySQLexplain bitsCN.com MySQL查詢分析器EXPLAIN或DESC MySQL可以通過EXPLAIN或DESC來查看并分析SQL語句的執(zhí)行情況,如下需要計算2006年所有公司的銷售額,需要關(guān)聯(lián)sales表和company表,并且對money字段做求和操作,相應(yīng)SQL如下: Sql代碼

MySQLexplain
bitsCN.com
MySQL查詢分析器EXPLAIN或DESC MySQL可以通過EXPLAIN或DESC來查看并分析SQL語句的執(zhí)行情況,如下需要計算2006年所有公司的銷售額,需要關(guān)聯(lián)sales表和company表,并且對money字段做求和操作,相應(yīng)SQL如下:
Sql代碼 EXPLAIN SELECT SUM(money) FROM sales s,company c WHERE s.company_id=c.id AND s.year=2006 /G; *************************** 1. row *************************** id: 1 select_type: SIMPLE table: s type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 1000 Extra: Using where *************************** 2. row *************************** id: 1 select_type: SIMPLE table: c type: ref possible_keys: index_company_id key: index_company_id key_len: 5 ref: sakila.c.company_id rows: 1 Extra: Using where; Using index 列的說明: select_type: 表示SELECT的類型,常見的有下面幾種 SIMPLE: 簡單表,不使用連接或子查詢的 PRIMARY: 主查詢,即外層的查詢 UNION: UNION中的第二個或者后面的查詢語句 SUBQUERY: 子查詢中的第一個SELECT table: 輸出結(jié)果集的表 type: 表示表的連接類型,性能由好到差的連接類型為下面順序 system: 表中只有一行,即常量表 const: 單表中最多有一個匹配行,如primary key或unique index eq_ref: 對于前面的每一行,在此表中只查詢一條記錄,也就是多表連接中使用primary key或unique index ref: 與eq_ref類似,區(qū)別在于不是使用primary key或unique index,而是使用普通索引 ref_or_null: 與ref類型,區(qū)別在于條件中包含對null的查詢 index_merge: 索引合并優(yōu)化 unique_subquery: in的后面是一個查詢主鍵字段的子查詢 index_subquery: 與unique_subquery類似,區(qū)別在于in的后面是查詢非唯一索引字段的子查詢 range: 單表中的范圍查詢 index: 對于前面的每一行,都通過查詢索引來得到數(shù)據(jù) all: 對于前面的每一行,都通過掃描全表來得到數(shù)據(jù) possible_keys: 查詢時可能用到的索引 key: 查詢時實際使用到的索引 key-len: 索引字段的長度 rows: 掃描行的數(shù)量 Extra: 執(zhí)行情況的說明和描述 通過EXPLAIN的分析,確認(rèn)在上面的例子中是對sales表的全表掃描導(dǎo)致效率不理想,通過對sales表創(chuàng)建索引: Sql代碼 CREATE INDEX index_sales_year ON sales(year); 創(chuàng)建索引后,再對該查詢語句分析如下:Sql代碼 EXPLAIN SELECT SUM(money) FROM sales s,company c WHERE s.company_id=c.id AND s.year=2006 /G; *************************** 1. row *************************** id: 1 select_type: SIMPLE table: s type: ref possible_keys: index_seles_year key: index_sales_year key_len: 2 ref: const rows: 1 Extra: Using where *************************** 2. row *************************** id: 1 select_type: SIMPLE table: c type: ref possible_keys: index_company_id key: index_company_id key_len: 5 ref: sakila.c.company_id rows: 1 Extra: Using where; Using index bitsCN.com
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
MySQL查詢分析器EXPLAIN或DESC_MySQL
MySQL查詢分析器EXPLAIN或DESC_MySQL:MySQLexplain bitsCN.com MySQL查詢分析器EXPLAIN或DESC MySQL可以通過EXPLAIN或DESC來查看并分析SQL語句的執(zhí)行情況,如下需要計算2006年所有公司的銷售額,需要關(guān)聯(lián)sales表和company表,并且對money字段做求和操作,相應(yīng)SQL如下: Sql代碼