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

Pra*_*lla 7 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 |       | 
+----+-------------+--------+-------+---------------+---------+---------+------+------+-------+
Run Code Online (Sandbox Code Playgroud)

4行(0秒)

此输出中语句顺序的重要性是什么?这是否意味着table5在所有其他之前被读取?

OMG*_*ies 5

这些表按照 MySQL 在处理查询时读取它们的顺序在输出中列出。您可以在此处阅读有关解释计划输出的更多信息

此外,输出告诉我:

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