MySQL Explain详解(二)

日期: 2008-08-17 作者:yxyup 来源:TechTarget中国 英文

  (3).union


  union中的第二个或后面的select语句.例如







mysql> explain select * from t3 where id=3952602 union all select * from t3 ; 
  +—-+————–+————+——-+——————-+———+———+——-+——+——-+ 
  | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | 
  +—-+————–+————+——-+——————-+———+———+——-+——+——-+ 
  | 1 | PRIMARY | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | const | 1 | | 
  | 2 | union | t3 | ALL | NULL | NULL | NULL | NULL | 1000 | | 
  |NULL | union RESULT | | ALL | NULL | NULL | NULL | NULL | NULL | | 
  +—-+————–+————+——-+——————-+———+———+——-+——+——-+ 


  (4).DEPENDENT union


  union中的第二个或后面的select语句,取决于外面的查询






mysql> explain select * from t3 where id in (select id from t3 where id=3952602 union all select id from t3) ; 
  +—-+——————–+————+——–+——————-+———+———+——-+——+————————–+ 
  | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | 
  +—-+——————–+————+——–+——————-+———+———+——-+——+————————–+ 
  | 1 | PRIMARY | t3 | ALL | NULL | NULL | NULL | NULL | 1000 | Using where | 
  | 2 | DEPENDENT SUBQUERY | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | const | 1 | Using index | 
  | 3 | DEPENDENT union | t3 | eq_ref | PRIMARY,idx_t3_id | PRIMARY | 4 | func | 1 | Using where; Using index | 
  |NULL | union RESULT | | ALL | NULL | NULL | NULL | NULL | NULL | | 
  +—-+——————–+————+——–+——————-+———+———+——-+——+————————–+ 

  (5).union RESULT


  union的结果。







mysql> explain select * from t3 where id=3952602 union all select * from t3 ; 
  +—-+————–+————+——-+——————-+———+———+——-+——+——-+ 
  | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | 
  +—-+————–+————+——-+——————-+———+———+——-+——+——-+ 
  | 1 | PRIMARY | t3 | const | PRIMARY,idx_t3_id | PRIMARY | 4 | const | 1 | | 
  | 2 | union | t3 | ALL | NULL | NULL | NULL | NULL | 1000 | | 
  |NULL | union RESULT | | ALL | NULL | NULL | NULL | NULL | NULL | | 
  +—-+————–+————+——-+——————-+———+———+——-+——+——-+ 

  (6).SUBQUERY


  子查询中的第一个select.







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

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

yxyup
yxyup

相关推荐