mysql> EXPLAIN SELECT 1;
+----+-------------+-------+------------+------+-
--------------+------+---------+------+------+---
-------+----------------+
| id | select_type | table | partitions | type |
possible_keys | key | key_len | ref | rows |
filtered | Extra |
+----+-------------+-------+------------+------+-
--------------+------+---------+------+------+---
-------+----------------+
| 1 | SIMPLE | NULL | NULL | NULL |
NULL | NULL | NULL | NULL | NULL |
NULL | No tables used |
+----+-------------+-------+------------+------+-
--------------+------+---------+------+------+---
-------+----------------+
1 row in set, 1 warning (0.01 sec)
然后这输出的⼀⼤坨东⻄就是所谓的执⾏计划,我的任务就是带领⼤
家看懂这⼀⼤坨东⻄⾥边的每个列都是⼲啥⽤的,以及在这个执⾏计
划的辅助下,我们应该怎样改进⾃⼰的查询语句以使查询执⾏起来更
⾼效。其实除了以SELECT开头的查询语句,其余的
DELETE、INSERT、REPLACE以及UPDATE语句前边都可以加
上EXPLAIN这个词⼉,⽤来查看这些语句的执⾏计划,不过我们这
⾥对SELECT语句更感兴趣,所以后边只会以SELECT语句为例来描
述EXPLAIN语句的⽤法。为了让⼤家先有⼀个感性的认识,我们把
EXPLAIN语句输出的各个列的作⽤先⼤致罗列⼀下:
列名 描述
id
在⼀个⼤的查询语句中每个SELECT关键字都对应
⼀个唯⼀的id
select_type SELECT关键字对应的那个查询的类型
table 表名
文档被以下合辑收录
评论