mysql执行计划性能_MySQL SQL性能分析Explain执行计划
一. 執(zhí)行計劃返回信息詳解
①. 執(zhí)行計劃所含字段
輸出列含義id查詢標(biāo)識
select_type查詢類型
table查詢涉及的表
partitions匹配到的分區(qū)信息
type連接類型
possible_keys可能選擇的索引
key實(shí)際使用的索引
key_len實(shí)際使用的索引的長度
ref和索引進(jìn)行比較的列
rows需要被檢索的大致行數(shù)
filtered按表條件過濾的行百分比
Extra額外信息
②. id
執(zhí)行計劃序列號,可出現(xiàn)3種組合方式
第一種:id全部相同,這時會從上至下依次執(zhí)
第二種:部分id相同,這時會按照id大小從大到小執(zhí)行;id相同的則會被認(rèn)定為是一組執(zhí)行計劃,同一組遵循第一種id全相同的順序執(zhí)行
UNION RESULT:UNION的結(jié)果
第三種:id全部不相同,這時會按照id大小從大到小執(zhí)行
SIMPLE:簡單的select查詢,查詢中不包含子查詢或者UNION
PRIMARY:查詢中若包含任何復(fù)雜的子部分,最外層查詢則被標(biāo)記為
SUBQUERY:在SELECT或WHERE列表中包含了子查詢
DERIVED:在FROM列表中包含的子查詢被標(biāo)記為DERIVED(衍生)MYSQL會遞歸執(zhí)行這些子查詢,把結(jié)果放在臨時表里
UNION:若第二個SELECT出現(xiàn)在UNION之后,則被標(biāo)記為UNION若UNION包含在FROM子句的子查詢中,外層SELECT將被標(biāo)記為:DERIVED
UNION RESULT:從UNION表獲取結(jié)果的SELECT
④. table
查詢涉及的表
⑤. partitions
由查詢匹配記錄的分區(qū)。非分區(qū)表為NULL
鏈接類型說明system表只有一行,MyISAM引擎。
const常量連接,表最多只有一行匹配,通用用于主鍵或者唯一索引比較時
eq_ref每次與之前的表合并行都只在該表讀取一行,這是除了system,const之外最好的一種,特點(diǎn)是使用=,而且索引的所有部分都參與join且索引是主鍵或非空唯一鍵的索引
ref如果每次只匹配少數(shù)行,那就是比較好的一種,使用=或<=>,可以是左覆蓋索引或非主鍵或非唯一鍵
fulltext全文搜索
ref_or_null與ref類似,但包括NULL
index_merge表示出現(xiàn)了索引合并優(yōu)化(包括交集,并集以及交集之間的并集),但不包括跨表和全文索引。這個比較復(fù)雜,目前的理解是合并單表的范圍索引掃描(如果成本估算比普通的range要更優(yōu)的話)
unique_subquery在in子查詢中,就是value in (select…)把形如select unique_key_column的子查詢替換。PS:所以不一定in子句中使用子查詢就是低效的!
index_subquery同上,但把形如”select non_unique_key_column“的子查詢替換
range常數(shù)值的范圍
index索引樹掃描。a.當(dāng)查詢是索引覆蓋的,即所有數(shù)據(jù)均可從索引樹獲取的時候(Extra中有Using Index);b.以索引順序從索引中查找數(shù)據(jù)行的全表掃描(無 Using Index);c.如果Extra中Using Index與Using Where同時出現(xiàn)的話,則是利用索引查找鍵值的意思;d.如單獨(dú)出現(xiàn),則是用讀索引來代替讀行,但不用于查找
all全表掃描(full table scan)由上到下性能最好到最差
⑦. possible_keys
列出查詢涉及到的字段的索引,但不一定會被使用
⑧. key
實(shí)際使用的索引,如果為NULL,則沒有使用索引
⑨. key_len
表示索引中使用的字節(jié)數(shù),可通過該列計算查詢中使用的索引的長度,在不損失精確性的情況下,長度越短越好。key_len顯示的值為索引字段的最大可能長度,并非實(shí)際使用長度,即key_len是根據(jù)表定義計算而得,不是通過表內(nèi)檢索出的。
⑩. ref
和前方表連接的字段,const代表是常量值連接
?. rows
查詢大致需要涉及讀取的行數(shù),越少越好
?. extra
包含不適合在其他列中顯式但十分重要的額外信息(暫不展開)
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的mysql执行计划性能_MySQL SQL性能分析Explain执行计划的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国复活四百吨海上怪兽,速度比航母快
- 下一篇: 廉颇老矣尚能饭否是什么意思啊?