《Mysql實(shí)例mysql explain用法學(xué)習(xí)》要點(diǎn):
本文介紹了Mysql實(shí)例mysql explain用法學(xué)習(xí),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
本節(jié)內(nèi)容:
mysql中explain用法
?
如果在select語句前放上關(guān)鍵詞explain,mysql將解釋它如何處理select,提供有關(guān)表如何聯(lián)接和聯(lián)接的次序.
explain的每個(gè)輸出行提供一個(gè)表的相關(guān)信息,并且每個(gè)行包括下面的列:
1,id?? select識(shí)別符.這是select的查詢序列號(hào).
2,select_type 可以為一下任何一種類型
simple? 簡單select(不使用union或子查詢)
primary?? 最外面的select
union??? union中的第二個(gè)或后面的select語句
dependent union? union中的第二個(gè)或后面的select語句,取決于外面的查詢
union result? union的結(jié)果.
subquery 子查詢中的第一個(gè)select
dependent subquery? 子查詢中的第一個(gè)select,取決于外面的查詢
derived??? 導(dǎo)出表的select(from子句的子查詢)
3,table? 輸出的行所引用的表.
4,type? 聯(lián)接類型.下面給出各種聯(lián)接類型,按照從最佳類型到最壞類型進(jìn)行排序:
system? 表僅有一行(=系統(tǒng)表).這是const聯(lián)接類型的一個(gè)特例.
?const? 表最多有一個(gè)匹配行,它將在查詢開始時(shí)被讀取.因?yàn)閮H有一行,在這行的列值可被優(yōu)化器剩余部分認(rèn)為是常數(shù).const表很快,因?yàn)樗鼈冎蛔x取一次!
eq_ref 對(duì)于每個(gè)來自于前面的表的行組合,從該表中讀取一行.這可能是最好的聯(lián)接類型,除了const類型.它用在一個(gè)索引的所有部分被聯(lián)接使用并且索引是unique或primary key
ref? 對(duì)于每個(gè)來自于前面的表的行組合,所有有匹配索引值的行將從這張表中讀取.如果聯(lián)接只使用鍵的最左邊的前綴,或如果鍵不是unique或primary key(換句話說,如果聯(lián)接不能基于關(guān)鍵字選擇單個(gè)行的話),則使用ref.如果使用的鍵僅僅匹配少量行,該聯(lián)接類型是不錯(cuò)的.
ref可以用于使用=或<=>操作符的帶索引的列.MYSQL實(shí)例
possible_keys 如果該列是null,則沒有相關(guān)的索引.在這種情況下,可以通過檢查where子句看是否它引用某些列或適合索引的列來提高你的查詢性能.如果是這樣,創(chuàng)造一個(gè)適當(dāng)?shù)乃饕⑶以俅斡胑xplain檢查查詢key 列顯示mysql實(shí)際決定使用的鍵(索引).如果沒有選擇索引,鍵是null.要想強(qiáng)制mysql使用或忽視possible_keys列中的索引,在查詢中使用force index、use index或者ignore index.MYSQL實(shí)例
5,rows? rows列顯示mysql認(rèn)為它執(zhí)行查詢時(shí)必須檢查的行數(shù).MYSQL實(shí)例
以上簡單介紹了mysql中explain語句的用法,希望對(duì)大家有所幫助.MYSQL實(shí)例
更多精彩文章請(qǐng)關(guān)注本站mysql欄目.MYSQL實(shí)例
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/6193.html