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