2010-06-26 27 views
7

Este es el plan de explicación de MySQL para una de las consultas que estoy buscando.¿Cuál es la importancia del orden de las declaraciones en la salida de explicación de 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 filas en el conjunto (0 seg)

Cuál es la importancia del orden de las declaraciones de este producto? ¿Significa que la tabla 5 se lee antes que las demás?

Respuesta

4

Las tablas se enumeran en la salida en el orden en que MySQL las leería mientras procesaba la consulta. Puede read more about the Explain plan output here.

Además, la salida me dice:

  • El optimizador vio la consulta como tener cuatro (4) instrucciones SELECT dentro de ella. Al ser un tipo de selección "simple", esas consultas no usan UNIÓN o subconsultas.
  • Dos de esas declaraciones podrían usar índices (basados ​​en la columna type), que eran claves principales (basadas en la columna key). Los otros dos no pudieron usar ningún índice.
Cuestiones relacionadas