博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql explain-Extra(using where,using index)使用详解
阅读量:2441 次
发布时间:2019-05-10

本文共 1043 字,大约阅读时间需要 3 分钟。

下面是测试用例,楼主的测试使用的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'

转载地址:http://vqnqb.baihongyu.com/

你可能感兴趣的文章
一个程序员的爱恋 (转)
查看>>
足球战术->边锋之Decorator篇 (转)
查看>>
编写优质无错代码(1) (转)
查看>>
MySQL 4.1.0 中文参考手册 --- 6.3 用于 SELECT 和 WHERE 子句的函数 (1) (转)
查看>>
vs.net beta 2中利用DataGrid分页详解 (转)
查看>>
Process-Display-Process (PDP) pattern (转)
查看>>
基于构件复用的软件方法与COM支持 (转)
查看>>
DELPHI中使用API函数详解 (转)
查看>>
Single Entry Point to EJB Layer (转)
查看>>
InsideJVM(3)--Method area(方法区) (转)
查看>>
中文版Windows XP 的新增功能(转)
查看>>
Web Application 開 發 利 器 - WebSnap(三) (转)
查看>>
跟我学 安装Windows Vista Bata2实录(转)
查看>>
Windows Vista IIS 7.0开启方法(转)
查看>>
Windows Vista六大版本详细介绍(转)
查看>>
Windows XP 中注册表内容的导入和导出(转)
查看>>
单一产品不会成功 开源软件开始商业应用(转)
查看>>
RedHat上SSH2的安装和使用(转)
查看>>
安全使用RedHat Linux系统(转)
查看>>
RedHat Enterprise AS4硬盘安装步骤(转)
查看>>