Mysql explain-type使用详解

Mysql explain-type使用详解下面是测试用例,楼主的测试使用的MySQL版本是5.6.27-log。show createtableuser_man;CREATETABLE`user_man`( `manid`bigint(20)NOTNULLAUTO_INCREMENT, `manname`varchar(32)DEFAULTNULL, `manage`int(6)DEFAULTNULL…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

show  create table user_woman;

CREATE TABLE `user_woman` (

  `womanid` int(11) NOT NULL AUTO_INCREMENT,

  `womanname` varchar(20) DEFAULT NULL,

  `womanage` int(6) DEFAULT NULL,

  PRIMARY KEY (`womanid`)

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

#执行计划中type定义说明:

#(1)执行计划type为ALL:遍历全表来查找

explain  SELECT * from user_man ;

explain select * from user_man where manage in (9,10);#非索引范围查找也是走全表

#(2)执行计划type为index:只遍历索引树

explain SELECT manid from user_man;

#(3)执行计划type为range:索引扫描范围

explain select *from user_man where manid  < 10;

explain select * from user_man where manid in (8,10,9) order by manage;

#(4)执行计划type为ref:非唯一性扫描索引

explain select *from user_man where manname = ‘zzk’;

#(5) 执行计划type为eq_ref:唯一性索引扫描

explain select * from user_man ,user_woman where user_man.manid = user_woman.womanid;

explain select * from user_man where manid in (select womanid from user_woman);

#(6)执行计划type为const、system:当MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问。如将主键置于where列表中,MySQL就能将该查询转换为一个常量

explain select *from user_man where manid = 8;

explain select * from (select * from user_man where manid=8) dd;

#(7)NULL:MySQL在优化过程中分解语句,执行时甚至不用访问表或索引

explain select * from user_man where manid = (select min(womanid) from user_woman)

#查询中若使用了覆盖索引,则该索引仅出现在key列表中(为manid、manname建立了索引,单独查这两个字段);

explain select manid ,manname from user_man where manname = ‘zzzz’ and manage = 43;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180940.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JS获取当前时间(精确到秒)「建议收藏」

    JS获取当前时间(精确到秒)「建议收藏」js获取当前日期currentDate(){vard=newDate();varyear=d.getFullYear();varmonth=d.getMonth();month=month+1>12?1:month+1;month=month>9?month:”0″+month.toString();var

    2022年9月23日
    0
  • SQL中的连接查询与嵌套查询「建议收藏」

    SQL中的连接查询与嵌套查询「建议收藏」连接查询若一个查询同时涉及两个或两个以上的表,则称之为连接查询。连接查询是数据库中最最要的查询,包括:1、等值连接查询2、自然连接查询3、非等值连接查询4、自身连接查询5、外连接查询6、复合条件查询等值与非等值连接查询:比较运算符主要有=、>、=、)等。下面来看一个例子:假设有一个学生数据库,其中有三张表,即学生信息表(Student

    2022年5月4日
    47
  • 去重是distinct还是group by?

    去重是distinct还是group by?

    2021年10月18日
    35
  • Quartus II 13.0安装和激活成功教程教程

    Quartus II 13.0安装和激活成功教程教程QuartusII软件是学习FPGA非常重要的软件,下面来介绍一下13.0版本的安装及激活成功教程教程:1、安装包介绍大家下载的完整版的QuartusII13.0软件应包含以下三个部分:请大家选择第三个“Quartus-13.0.0.156-windows.tar”压缩文件,即为我们的QuartusII13.0的主安装包,这是一个压缩文件,安装前需要解压。该包包含了开发FP…

    2022年10月16日
    0
  • 《MATLAB编程》例题-画分段函数图像

    《MATLAB编程》例题-画分段函数图像《MATLAB编程》例题解答:使用matlab画函数图像(使用if-else):租用一个交通工具前100公里1美元每公里,在下面的200公里中0.8美元每分钟,越过300公里的部分一律按0.7美元每公里.已知公里数,编写对应的MATLAB语句计算出总花销,和平均每公里的花销.解:1.写出函数表达式(自己化简得到)y1是行驶到第x公里的总花销y2是行驶到第x公里平均每公里的花销2.使用matlab画出函数图像(求出坐标点,连线)matlab代码如下://An

    2022年5月7日
    64
  • 史上最全的中高级JAVA工程师-面试题汇总

    史上最全的中高级JAVA工程师-面试题汇总史上最全的java工程师面试题汇总,纯个人总结,精准无误。适合中高级JAVA工程师。

    2022年6月13日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号