檢測SQL的性能
>>>explain SQL;
explain?SQL
>>>explain SQL?\G;
explain SQL?\G;
SELECT_TYPE
simple:不含子查詢
subquery:非from子查詢
derived:from型子查詢
primary:含子查詢或派生查詢
Table
顯示查詢的表名或者是表的別名
Possible_key
可能用到的索引
KEY
最終用到的索引
key_len
用到的索引長度
TYPE
是索引查詢的方式
all:表示掃描到了所有的數據,也就是說沒有用到任何索引。
index:表示掃描到了所有到所有節點,也就是說。
range:表示查詢時,能根據索引做范圍的掃描。
ref:表示通過索引可以直接引用到某些數據行。
從上往下,SQL性能遞增。
ROWS
估計要掃描多少行數據
EXTRA
index:用到了索引覆蓋,效率非常高
use where:指光靠索引定位不了,還需要wehre判斷一下。
use temporary:指用上了臨時表,group by 與 order by不同列時,或者group by、order by其它表的列時。
use filesort:文件排序(文件可能在磁盤,也可能在內存)。
查詢磁盤的臨時狀態
>>>show status like '%tmp%';