久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL的explain如何使用

152次閱讀
沒有評論

共計 3142 個字符,預(yù)計需要花費 8 分鐘才能閱讀完成。

本文丸趣 TV 小編為大家詳細介紹“MySQL 的 explain 如何使用”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“MySQL 的 explain 如何使用”文章能幫助大家解決疑惑,下面跟著丸趣 TV 小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

一、explain 能干什么

??通過 explain 語句,我們可以分析出以下結(jié)果

表的讀取順序數(shù)據(jù)讀取操作的操作類型表之間的引用哪些索引可以使用每張表有多少行被優(yōu)化器查詢哪些索引被實際使用二、如何使用 explain

??用法:explain + SQL 語句;

MariaDB [class_info]  explain select * from student;
+--+-----------+-------+----+-------------+-----+-------+-----+----+-----+
|id|select_type| table |type|possible_keys| key |key_len| ref |rows|Extra|
+--+-----------+-------+----+-------------+-----+-------+-----+----+-----+
| 1| SIMPLE |student| ALL| NULL | NULL| NULL | NULL| 1 | |
+--+-----------+-------+----+-------------+-----+-------+-----+----+-----+
1 row in set (0.00 sec)

??expain 出來 10 個字段,分別是 id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra

??概要描述:

字段描述 id 選擇標(biāo)識符 select_type 查詢的類型 table 輸出結(jié)果集的表 type 表的連接類型 possible_keys 查詢時可能使用的索引 key 實際使用的索引 key_len 索引字段的長度 ref 列與索引的比較 rows 掃描出的行數(shù) (估算的行數(shù))Extra 執(zhí)行情況的描述和說明三、explain 各字段的含義 3.1 id

??id 是 select 查詢的序列號,包含一組數(shù)字,表示查詢中執(zhí)行 select 子句或操作表的順序。id 的結(jié)果有以下三種情況:

??● id 相同,執(zhí)行順序由上至下,與 sql 中順序無關(guān)

??● 如果是子查詢,id 的序號會遞增,id 越大優(yōu)先級越高,越先被執(zhí)行

??● id 如果相同,可以認為是一組,從上往下順序執(zhí)行;在所有組中 id 值越大,優(yōu)先級越高,越先執(zhí)行。

3.2 select_type

??select_type 顯示示查詢中每個 select 子句的類型,常用的 select_type 的類型有 simple、primary、subquery、derived、union、union result

??(1) simple (簡單 select,不使用 union 或子查詢等任何復(fù)雜查詢)

??(2) primary (子查詢中最外層查詢,查詢中若包含任何復(fù)雜的子部分,最外層的 select 被標(biāo)記為 primary)

??(3) subquery (在 select 或 where 列表中包含了子查詢)

??(4) derived (在 from 列表中包含的子查詢被標(biāo)記為 derived( 衍生),MySQL 會遞歸執(zhí)行這些子查詢,把結(jié)果放在臨時表中 )

??(5) union (union 中的第二個或后面的 select 語句)

??(6) union result (union 的結(jié)果,union 語句中第二個 select 開始后面所有 select)

3.3 table

??table 顯示這一步所訪問數(shù)據(jù)庫中表名稱 (顯示這一行的數(shù)據(jù)是關(guān)于哪張表的)。

3.4 type

??type 所顯示的是查詢使用了哪種類型,type 包含的類型有 all、index、range、ref、eq_ref、const、system、NULL,它的性能依次遞增。

??● all:Full Table Scan,MySQL 將遍歷全表以找到匹配的行

??● index : Full Index Scan,index 與 ALL 區(qū)別為 index 類型只遍歷索引樹

??● range: 只檢索給定范圍的行,使用一個索引來選擇行

MySQL 的 explain 如何使用

??● ref: 表示上述表的連接匹配條件,即哪些列或常量被用于查找索引列上的值

MySQL 的 explain 如何使用

??● eq_ref : 類似 ref,區(qū)別就在使用的索引是唯一索引,對于每個索引鍵值,表中只有一條記錄匹配,簡單來說,就是多表連接中使用 primary key 或者 unique key 作為關(guān)聯(lián)條件

??● const、system : 當(dāng) MySQL 對查詢某部分進行優(yōu)化,并轉(zhuǎn)換為一個常量時,使用這些類型訪問。如將主鍵置于 where 列表中,MySQL 就能將該查詢轉(zhuǎn)換為一個常量,system 是 const 類型的特例,當(dāng)查詢的表只有一行的情況下使用 system。

MySQL 的 explain 如何使用

??● NULL : MySQL 在優(yōu)化過程中分解語句,執(zhí)行時甚至不用訪問表或索引,例如從一個索引列里選取最小值可以通過單獨索引查找完成。

3.5 possible_keys

??possible_keys 顯示可能應(yīng)用在這張表中的索引,一個或多個。查詢涉及到的字段上若存在索引,則該索引將被列出,但不一定被查詢實際使用。(該查詢可以利用的索引,如果沒有任何索引顯示 null)

3.6 key

??key 顯示 MySQL 實際決定使用的鍵(索引),必然包含在 possible_keys 中。如果沒有選擇索引,則是 NULL。要想強制 MySQL 使用或忽視 possible_keys 列中的索引,在查詢中使用 force index、use index 或者 ignore index。

3.7 key_len

??key_len 表示索引中使用的字節(jié)數(shù),可通過該列計算查詢中使用的索引的長度(key_len 顯示的值為索引字段的最大可能長度,并非實際使用長度,即 key_len 是根據(jù)表定義計算而得,不是通過表內(nèi)檢索出的 ),在不損失精確性的情況下,長度越短越好。

MySQL 的 explain 如何使用

3.8 ref

??ref 顯示索引的那一列被使用,表示上述表的連接匹配條件,即哪些列或常量被用于查找索引列上的值

MySQL 的 explain 如何使用

3.9 rows

??rows 估算出結(jié)果集的行數(shù),表示 MySQL 根據(jù)表統(tǒng)計信息及索引選用情況,估算的找到所需的記錄所需要讀取的行數(shù)。

MySQL 的 explain 如何使用

3.10 Extra

??Extra 該列包含 MySQL 解決查詢的詳細信息, 有以下幾種情況:

??的請求列都是同一個索引的部分的時候,表示 mysql 服務(wù)器將在存儲引擎檢索行后再進行過濾

??● Using temporary 表示 MySQL 需要使用臨時表來存儲結(jié)果集,常見于排序和分組查詢,常見 group by ; order by

??● Using filesort 當(dāng) Query 中包含 order by 操作,而且無法利用索引完成的排序操作稱為“文件排序”

??● Using join buffer 改值強調(diào)了在獲取連接條件時沒有使用索引,并且需要連接緩沖區(qū)來存儲中間結(jié)果。如果出現(xiàn)了這個值,那應(yīng)該注意,根據(jù)查詢的具體情況可能需要添加索引來改進能。

??● Impossible where 這個值強調(diào)了 where 語句會導(dǎo)致沒有符合條件的行(通過收集統(tǒng)計信息不可能存在結(jié)果)。

??● Select tables optimized away 這個值意味著僅通過使用索引,優(yōu)化器可能僅從聚合函數(shù)結(jié)果中返回一行

??● No tables used Query 語句中使用 from dual 或不含任何 from 子句

讀到這里,這篇“MySQL 的 explain 如何使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-15發(fā)表,共計3142字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 临西县| 固镇县| 灯塔市| 德庆县| 文昌市| 汉寿县| 南平市| 突泉县| 秭归县| 明水县| 安乡县| 长海县| 乌恰县| 哈巴河县| 夏河县| 罗定市| 怀仁县| 仙桃市| 满洲里市| 嘉峪关市| 武邑县| 黔江区| 宁晋县| 景德镇市| 萝北县| 汕尾市| 新源县| 马公市| 西充县| 新和县| 方山县| 高淳县| 丰县| 斗六市| 亚东县| 贵定县| 宣威市| 北流市| 克东县| 乡城县| 高要市|