2010-06-26 58 views
7

這是我正在研究的查詢之一的mysql解釋計劃。mysql解釋輸出中語句順序的意義是什麼?

+----+-------------+--------+-------+---------------+---------+---------+------+------+-------+ 
| id | select_type | table | type | possible_keys | key  | key_len | ref | rows | Extra | 
+----+-------------+--------+-------+---------------+---------+---------+------+------+-------+ 
| 1 | SIMPLE  | table2 | index | NULL   | PRIMARY | 4  | NULL | 6 |  | 
| 1 | SIMPLE  | table3 | ALL | NULL   | NULL | NULL | NULL | 23 |  | 
| 1 | SIMPLE  | table1 | ALL | NULL   | NULL | NULL | NULL | 8 |  | 
| 1 | SIMPLE  | table5 | index | NULL   | PRIMARY | 4  | NULL | 1 |  | 
+----+-------------+--------+-------+---------------+---------+---------+------+------+-------+ 

4行集(0秒)

什麼是這個輸出語句的順序的意義是什麼? 這是否意味着table5在所有其他人之前被讀取?

回答

4

這些表在輸出中按照MySQL在處理查詢時讀取它們的順序列出。你可以read more about the Explain plan output here

此外,輸出告訴我:

  • 優化看到查詢在其內四(4)SELECT語句。作爲「簡單」選擇類型,這些查詢不使用UNION或子查詢。
  • 其中兩個語句可以使用主鍵(基於key列)的索引(基於type列)。另外兩個不能使用任何索引。