2010-06-26 61 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列)。另外两个不能使用任何索引。