尚矽谷Mysql高階day5(p29-30)

java man發表於2021-01-01
今天是2021-1-1。

一。explain-extra

包含不適合在其他列中顯示但十分重要的額外資訊,包含以下資訊:

1.Using filesort:如果order子句中出現的欄位沒有使用到索引,那麼mysql會使用一個外部的索引排序來排序這些欄位的值--可以說是重新掃描整張表來排序,而不是我們可能建立好的索引來對欄位排序
2.Using temporary:這裡有很多因素,比如:排序、分組時涉及到的欄位未使用索引;多表連線查詢時,查詢條件中沒有使用最開始的基表中的欄位作為查詢條件,即多個表中,有與最開始的基表非直接關聯的表。
3.using index:單獨出現時,表示select子句的欄位都使用到了索引,且where子句中涉及的欄位滿足聯合索引的最左字首匹配原則,即出現了覆蓋索引。
4.using where:單獨出現時,表示where子句中涉及到的欄位未使用索引
5.using where、using index:一起出現時,表示select子句的欄位都使用到了索引,而where子句中涉及的欄位不滿足聯合索引的最左字首匹配原則,但是其中的一列。
6.using join buffer:多表連線查詢時,如果涉及到的表太多,就會使用連線快取,可以修改配置檔案中的引數來增大緩衝區。
7.null:被查詢的列沒有被索引覆蓋,但where條件是索引的前導列,此時用到了索引,但是部分列未被索引覆蓋,必須通過“回表查詢”來實現,不是純粹地用到了索引,也不是完全沒用到索引
8.impossible where:where子句中條件的值為false,無法獲取需要的資料

相關文章