123456

  一.语法

  explain < table_name >

  例如: explain select * from t3 where id=3952602;

  二.explain输出解释

 +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
  | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
  +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
  1.id

  1.我ぐぢóғҊ理解是SQL执行〮぀ÑѱѨ顺利ぱゃĔҴҫ标识,SQL从大到小こづöҖҍ执行.

  例如:

mysql> explain select * from (select * from ( select * from t3 where id=3952602) a) b;
  +----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
  | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
  +----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
  | 1 | PRIMARY | | system | NULL | NULL | NULL | NULL | 1 | |
  | 2 | DERIVED | | system | NULL | NULL | NULL | NULL | 1 | |
  | 3 | DERIVED | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | | 1 | |
  +----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+

  很显然这条SQL是从里向外ぜのÿҟҖ执行,就是从id=3 向上执行.

  2. select_type就是select类型,可以有以下几种

  (1) SIMPLE

  简单SELECT(不使用UNION或子查询等) 例如: 

mysql> explain select * from t3 where id=3952602;
  +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
  | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
  +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+
  | 1 | SIMPLE | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | const | 1 | |
  +----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+

  (2). PRIMARY

  我いざç҇Ѿ理解是最外层〜〮¿џіselect.例如:

mysql> explain select * from (select * from t3 where id=3952602) a ;
  +----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
  | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
  +----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
  | 1 | PRIMARY | | system | NULL | NULL | NULL | NULL | 1 | |
  | 2 | DERIVED | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | | 1 | |
  +----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+

123456