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