Explain简介
MySQL优化器在基于成本的计算和基于规则的SQL优化会生成一个所谓的 执行计划 ,我们就可以使用执行计划查看MySQL对该语句具体的执行方式。
介绍这个好啰嗦就是了,我们可以通过这个优化器展示的执行计划,查看优化器对我们的SQL进行优化的步骤,连接转换成单表访问时的优化。以及对于之前知识的复习了属于是,比如访问方式,索引的选择,半连接等SQL语句优化。
mysql> explain select * from mall.ums_admin; +----+-------------+-----------+------------+------+---------------+------+---------+------+------+----------+-------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+-----------+------------+------+---------------+------+---------+------+------+----------+-------+ | 1 | SIMPLE | ums_admin | NULL | ALL | NULL | NULL | NULL | NULL | 5 | 100.00 | NULL | +----+-------------+-----------+------------+------+---------------+------+---------+------+------+----------+-------+ 1 row in set, 1 warning (0.00 sec)
上述是我们使用explain使用的简单小例子。下面是每列的简单描述。
我们接下来就是对于Explain中展示的列进行介绍,回涉及到之前的SQL成本和语句优化。
table列
对于每个SQL语句来说,不管是不是使用连接的多表查询,我们最后都会变成执行多个单表查询的语句。所以table列就指明了当前执行某个计划的表是哪一个。就比如上面例子的单表查询的SQL。
ID列
会有以下几种情况
-
单表查询,此时的ID列就为1。
-
连接查询&#x