index-E
Extra
包含不適合在其他列中顯示但十分重要的額外信息
Using filesort?
查詢中排序的字段,排序字段若通過索引去訪問將大大提高排序速度
Using temporary?
使了用臨時表保存中間結果,MySQL在對查詢結果排序時使用臨時表。常見于排序 order by 和分組查詢 group by。
USING index
如果同時出現using where,表明索引被用來執行索引鍵值的查找;
如果沒有同時出現using where,表明索引用來讀取數據而非執行查找動作。
表示相應的select操作中使用了覆蓋索引(Covering Index),避免訪問了表的數據行,效率不錯!
如果同時出現using where,表明索引被用來執行索引鍵值的查找;
如果沒有同時出現using where,表明索引用來讀取數據而非執行查找動作。
覆蓋索引(Covering Index)
覆蓋索引(Covering Index),一說為索引覆蓋。
理解方式一:就是select的數據列只用從索引中就能夠取得,不必讀取數據行,MySQL可以利用索引返回select列表中的字段,而不必根據索引再次讀取數據文件,換句話說查詢列要被所建的索引覆蓋。
理解方式二:索引是高效找到行的一個方法,但是一般數據庫也能使用索引找到一個列的數據,因此它不必讀取整個行。畢竟索引葉子節點存儲了它們索引的數據;當能通過讀取索引就可以得到想要的數據,那就不需要讀取行了。一個索引包含了(或覆蓋了)滿足查詢結果的數據就叫做覆蓋索引。
注意:
如果要使用覆蓋索引,一定要注意select列表中只取出需要的列,不可select *,
因為如果將所有字段一起做索引會導致索引文件過大,查詢性能下降。
Using where
表明使用了where過濾
using join buffer
使用了連接緩存
impossible where
where子句的值總是false,不能用來獲取任何元組
?
總結