《mysql中select語句性能檢測》要點:
本文介紹了mysql中select語句性能檢測,希望對您有用。如果有疑問,可以聯(lián)系我們。
mysql中explain詳細(xì)介紹,用于判斷select語句查詢性能的很好辦法
語法:explain select ....
變體:
1.explain extended select ....
將執(zhí)行方案“反編譯”成select語句;
運行show warnings 可以獲得被mysql優(yōu)化器優(yōu)化后的語句
2.explain partitions select ...
用于分區(qū)表的explain
運行成果含義:
type: all ,index,range,ref,eq_ref,const,system null 從左到右,最差到最好;
all: full table scan ;mysql將遍歷全表以找到匹配的行;
index : index scan; index 和 all的區(qū)別在于index類型只遍歷索引;
range:索引規(guī)模掃描,對索引的掃描開始于某一點,返回匹配值的行,常見與between ,< ,>等查詢;
ref:非唯一性索引掃描,返回匹配某個零丁值的所有行,常見于使用非唯一索引即唯一索引的非唯一前綴進(jìn)行查找 ;
eq_ref:唯一性索引掃描,對付每個索引鍵,表中只有一條記錄與之匹配,常用于主鍵或者唯一索引掃描;
const,system:當(dāng)mysql對某查詢某部分進(jìn)行優(yōu)化,并轉(zhuǎn)為一個常量時,使用這些拜訪類型.如果將主鍵置于where 列表中,mysql就能將該查詢轉(zhuǎn)化為一個常量.
possible keys:
指出mysql能使用哪個索引在表中找到行,查詢涉及到的字段若存在索引,則該索引被列出,但是不必定被查詢使用 .
key:顯示mysql在查詢中實際使用的索引,若沒有使用索引,則顯示為null.
key_len:表現(xiàn)索引中使用的字節(jié)數(shù),可以通過該列計算查詢中使用的索引的長度.key_len顯示的值為索引字段的最 大長度,并非實際使用長度.即key_len是根據(jù)表定義計算而得,不是通過表內(nèi)檢索出的.
ref:表現(xiàn)上述表的連接匹配條件,即哪些列或者常量被用于查找索引上的值;
rows:表示mysql根據(jù)表統(tǒng)計信息以及索引選用情況,估算的找到所需記錄所必要的行數(shù);
extra:包括不適合在其他列中顯示但是十分重要的額外信息
a:using index:該值表現(xiàn)相迎的select操作中使用了覆蓋索引(cover index)
b:using where:表現(xiàn)mysql服務(wù)器再存儲引擎受到記錄后進(jìn)行“后過濾”;
c:using temporary :表示mysql必要使用臨時表來存儲結(jié)果集,常見于排序和分組查詢;
d:using filesort:mysql中無法利用索引完成排序,稱為“文件排序”;
局限:
explain不會告訴你關(guān)于觸發(fā)器,存儲過程的信息或者用戶自界說的函數(shù)對查詢的影響情況.
explain不會斟酌cache.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《mysql中select語句性能檢測》等實戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/8694.html