[ 登录 ][ 注册 ] 天极传媒: 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

MySQL Explain 详解

作者: yxyup,  出处:blog, 责任编辑: 王晓晨, 
2008-08-18 08:10
  本文详细讲解了有关MySQL Explain:MySQL语法,explain输出解释等方面的问题。

  一.语法

  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 | |
  +----+-------------+------------+--------+-------------------+---------+---------+------+------+-------+
共6页。 1 2 3 4 5 6 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅