mysql解释输出中语句顺序的意义是什么?

时间:2010-06-26 13:56:42

标签: mysql sql-execution-plan

这是我正在研究的查询之一的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?

1 个答案:

答案 0 :(得分:4)

这些表按照MySQL在处理查询时读取它们的顺序列在输出中。你可以read more about the Explain plan output here

此外,输出告诉我:

  • 优化器将查询视为其中包含四(4)个SELECT语句。作为“简单”选择类型,这些查询不使用UNION或子查询。
  • 其中两个语句可以使用索引(基于type列),这些索引是主键(基于key列)。其他两个不能使用任何索引。