TYPE(3)—mysql执行计划(四十九)

2023-02-02 00:00:00 索引 查询 主键 物化 等值

Simple:普通的sql查询,连接查询

Primary:union左边的表。

Union:union和union all都叫几个select,除了左边的是primary,其他都是union。

Union result:union去重临时表。

Subquery:子查询,不相关查询,没有转semi-join,并且mysql优化器选择了物化表查询,因为物化,只执行一次。

Dependnet subquery:相关子查询,因为没有物化,需要执行多次。

Dependent union:子查询里union除了左边的select。

Derived:from派生查询,并且没有转成连接查询。

Materialized:物化之后,并且与外层连接查询。

TYPE

前面我们说过了mysql执行sql语句会采用什么方法,比如const,ref,ref_or_null,range,index,all,这个type就代表执行sql的查询方法,但我们前面只说了innoDB存储引擎进行表单访问的一些方法,完整的我们下面介绍一下。

System

当表里只有一条记录,并且这里只有统计数据是的,才可以用到这个方法,注意innoDB之前说过都是估算,所以这里必须是myISAM或者memory

mysql> CREATE TABLE t(i int) Engine=MyISAM;
Query OK, 0 rows affected (0.05 sec)
 
mysql> INSERT INTO t VALUES(1);
Query OK, 1 row affected (0.01 sec)
 
mysql> EXPLAIN SELECT * FROM t;
+----+-------------+-------+------------+--------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table | partitions | type   | possible_keys | key  | key_len | ref  | rows | filtered | Extra |
+----+-------------+-------+------------+--------+---------------+------+---------+------+------+----------+-------+
|  1 | SIMPLE      | t     | NULL       | system | NULL          | NULL | NULL    | NULL |    1 |   100.00 | NULL  |
+----+-------------+-------+------------+--------+---------------+------+---------+------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)
 
mysql> explain select * from innoDB_tb;
+----+-------------+-----------+------------+------+---------------+------+---------+------+------+----------+-------+
| id | select_type | table     | partitions | type | possible_keys | key  | key_len | ref  | rows | filtered | Extra |
+----+-------------+-----------+------------+------+---------------+------+---------+------+------+----------+-------+
|  1 | SIMPLE      | innoDB_tb | NULL       | ALL  | NULL          | NULL | NULL    | NULL |    1 |   100.00 | NULL  |
+----+-------------+-----------+------------+------+---------------+------+---------+------+------+----------+-------+
1 row in set, 1 warning (0.00 sec)

相关文章