Mysql explain-Extra(using where,using index)使用详解

下面是测试用例,楼主的测试使用的MySQL版本是5.6.27-log。

show  create table user_man;

CREATE TABLE `user_man` (
  `manid` bigint(20) NOT NULL AUTO_INCREMENT,
  `manname` varchar(32) DEFAULT NULL,
  `manage` int(6) DEFAULT NULL,
  `upd_time` timestamp NOT NULL DEFAULT '2000-01-01 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
  `blacklist` bigint(20) DEFAULT '-1' COMMENT '-1,1',
  PRIMARY KEY (`manid`),
  KEY `IDX_MN` (`manname`) USING BTREE,
  KEY `IDX_MID` (`manid`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;


下面的情况可能跟我的建表和数据量有关系,可能还有其他情况会符合的,希望大家多多留言一起探讨。不过下面的这个我都是测试过好几次了的,可以说是没有问题的。

#Extra 情况
#(1)using index condition ,先在二级索引上使用索引查找到主键ID,然后在主键索引上通过主键ID进行查找。这里之所以需要去主键索引上查,是因为select 需要的数据,二级索引不能完全提供
explain  SELECT * from user_man where manname = 'zzk';
# (2)using where ,直接在主键索引上过滤数据,必带where子句,而且用不上索引
explain select * from user_man where manage in (9,10);
#(3)using index,直接在主键索引上完成查询和所有数据的获取,一般是只获取主键ID
explain select manid from user_man
# (4)Using where; Using index,直接在二级索引(覆盖索引)上获取全部数据
explain select manname,manid from user_man where manname = 'yjz'

MySQLEXPLAIN命令可以用于分析查询语句的执行计划,其中包含的EXTRA列提供了关于查询优化器的额外信息。下面是一些常见的EXTRA内容解释: 1. Using index:表示查询使用了覆盖索引,即查询结果可以直接从索引中获取,而不需要从数据表中读取数据。 2. Using where:表示查询在执行时使用WHERE子句中指定的条件。 3. Using temporary:表示查询需要创建一个临时表来处理结果集,这通常是由于GROUP BY、ORDER BY或UNION操作导致的。 4. Using filesort:表示查询需要对结果集进行排序,但无法使用索引完成排序,因此需要创建一个临时表,并进行文件排序。 5. Range checked for each record:表示查询使用了索引范围扫描,即索引扫描的不是整个索引,而是一部分。 6. Using join buffer:表示查询使用了连接缓冲区,这使得MySQL可以更有效地处理连接操作。 7. Impossible where:表示WHERE子句中指定的条件是不可能为真的,因此查询将返回空结果集。 8. Select tables optimized away:表示查询的优化器已经优化了查询,因此不需要访问任何表。 9. Distinct:表示查询使用了DISTINCT关键字,这将导致MySQL对结果集进行去重操作。 10. Fulltext search:表示查询使用了全文搜索,这需要使用全文索引和相关算法来处理。 这些EXTRA内容提供了关于查询优化器如何执行查询的详细信息,可以帮助我们更好地理解查询的执行计划,从而优化查询性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值