MYSQL 执行计划

explain select * from table;    这样可以查看到一个语句的执行计划。

mysql> explain select Orgid,Stkcd,Secnme from CO_CRLSEC
where Stkcd in (
select Seccd from IDX_SmpChg
where Indextype=1 
and Indexcd=000300
and Enddt is null
);
+----+--------------------+------------+------+---------------+------+---------+------+--------+-------------+
| id | select_type        | table      | type | possible_keys | key  | key_len | ref  | rows   | Extra       |
+----+--------------------+------------+------+---------------+------+---------+------+--------+-------------+
|  1 | PRIMARY            | CO_CRLSEC  | ALL  | NULL          | NULL | NULL    | NULL |   3029 | Using where |
|  2 | DEPENDENT SUBQUERY | IDX_SmpChg | ALL  | NULL          | NULL | NULL    | NULL | 129083 | Using where |
+----+--------------------+------------+------+---------------+------+---------+------+--------+-------------+
2 rows in set


解释:
1. select_type: 表示SELECT 的类型,常见的取值有simple(简单表,即不使用表连接或者子查询),primary(主查询,即外层的查询),union(union中的第二个或者后面的查询语句),subquery(子查询中的第一个SELECT 语句)等。

2.table: 输出结果集的表。

3.type: 表示表的连接类型,性能由好到差的连接类型为: system(表中公有一行,即常量表),const(单表中最多有一个匹配行,例如primary key 或者unique index),eq_ref(对于前面的每一行,在此表中只查询一条记录,简单的来说,就是多表连接中使用PRIMARY KEY 或者UNIQUE INDEX),ref(与eq_ref类似,区别在于不是使用primary key 或者unique index,而是使用普通的索引),ref_or_null(与ref类似,区别在于条件中包含对NULL的查询),index_merge(索引合并优化), unique_subquery(in的后面是一个查询主键字段的子查询), index_subquery(对于前面的每一行,都通过查询索引来得到数据), all(对于前面的每一行,都通过全表扫描来得到数据)。

4.possible_keys: 表示查询时,可能使用的索引。

5.key: 表示实际使用的索引。

6.key_len:索引字段的长度。

7.rows: 扫描行的数量。

8.extra:执行情况的说明和描述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值