MySql中explain之后,type字段和Extra字段中的index-区别

一个查询语句经过explain之后,type字段可能会出现index,Extra中可能会出现using index。

那么二者有什么区别呢?他们是迥然不同的。

type中的index,仅仅是说,查询类型index,表示本次查询仅仅扫描索引树,没有其他读取操作。

Extra中的using index,意思是说,查询使用到了“覆盖索引”。关于覆盖索引,看这里

-----------------------------------------------------------------

表fa的id字段上有主键索引。无其他索引。

看表结构:

mysql> show create table fa;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                               |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------+
| fa    | CREATE TABLE `fa` (
  `id` int(11) NOT NULL,
  `name` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
看查询:
mysql> explain select * from fa;
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
|  1 | SIMPLE      | fa    | ALL  | NULL          | NULL | NULL    | NULL |    3 |       |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)

mysql> explain select id from fa;
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table | type  | possible_keys | key     | key_len | ref  | rows | Extra       |
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
|  1 | SIMPLE      | fa    | index | NULL          | PRIMARY | 4       | NULL |    3 | Using index |
+----+-------------+-------+-------+---------------+---------+---------+------+------+-------------+
1 row in set (0.00 sec)
第二个查询中,type中是index,仅仅扫描了索引。并且在Extra中出现了using index,意思是用到了覆盖索引。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用\[1\]: EXPLAIN关键字用于模拟优化器执行SQL语句,分析查询语句的性能瓶颈。通过在SELECT语句之前加上EXPLAIN关键字,MySQL会返回该语句的执行计划。这个执行计划包含了查询的各个步骤,以及每个步骤的详细信息。\[2\]在使用EXPLAIN关键字时,如果FROM子句包含子查询,MySQL仍然会执行该子查询,并将结果放入临时表。这样可以更好地分析查询的性能。引用\[3\]在案例EXPLAIN语句返回了一个执行计划,其包含了查询的各个步骤的详细信息。在这个案例,查询语句是SELECT * FROM t_order ORDER BY express_type。执行计划字段列说明如下: - id: 表示查询的每个步骤的标识符,从1开始递增。 - select_type: 表示查询的类型。在这个案例,select_type为SIMPLE,表示这是一个简单的SELECT查询。 - table: 表示查询涉及的表名。 - type: 表示访问表的方式。在这个案例type为ALL,表示全表扫描。 - possible_keys: 表示可能使用的索引。 - key: 表示实际使用的索引。 - key_len: 表示索引的长度。 - ref: 表示使用的索引的列或常数。 - rows: 表示扫描的行数。 - Extra: 表示额外的信息。在这个案例ExtraUsing filesort,表示需要进行文件排序。 通过分析这些字段列的信息,可以了解查询语句的执行计划,从而找出查询的性能瓶颈。 #### 引用[.reference_title] - *1* [一文看懂MySQLexplain关键字的作用](https://blog.csdn.net/qq_43332570/article/details/106860200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Explain关键字详解](https://blog.csdn.net/cczxcce/article/details/121440270)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MySQL关键字EXPLAIN的用法及其案例](https://blog.csdn.net/u011863024/article/details/106818285)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值