2010-06-26 5 views
7

Questo è mysql spiegare piano per una delle query che sto cercando.Qual è il significato dell'ordine delle istruzioni in mysql spiegare l'output?

+----+-------------+--------+-------+---------------+---------+---------+------+------+-------+ 
| 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 rows in set (0 sec)

Quale significato dell'ordine di dichiarazioni in questa uscita? Significa che la tabella5 viene letta prima di tutte le altre?

risposta

4

Le tabelle sono elencate nell'output nell'ordine in cui MySQL le leggerà durante l'elaborazione della query. È possibile read more about the Explain plan output here.

Inoltre, l'uscita mi dice:

  • L'ottimizzatore ha visto la query come avere quattro (4) istruzioni SELECT all'interno di esso. Essendo un tipo di selezione "semplice", tali query non utilizzano UNION o sottoquery.
  • Due di queste istruzioni potrebbero utilizzare indici (basati sulla colonna type), che erano chiavi primarie (basate sulla colonna key). Gli altri due non potevano usare alcun indice.
Problemi correlati