Mysql explain 基本用法与简单分析

一、explain使用方式

explain select * from article where name = 'today';

二、建表语句


CREATE TABLE `article` (
   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
   `name` varchar(100) DEFAULT NULL COMMENT '名称',
   `summary` varchar(200) DEFAULT NULL COMMENT '概要',
   `content` varchar(500) DEFAULT NULL COMMENT '内容',
   `create_user` varchar(50) DEFAULT NULL COMMENT '创建用户',
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='文章表'

三、内容

insert into 
article(name,summary,content,create_user) 
values
("today","weather","good","csdn10"),
("yesterday","weather","bad","csdn10"),
("today","temperature","20","csdn10"),
("yesterday","temperature","30","csdn10")

 

四、查询结果

 五、分析 

id:该条查询语句的标识符,是查询时候的序列号。如果是合其他行的union结果,值有可能是Null,。在这种情况下,表的字段展示了一个像<unionM,N>,也即是两个数据的并集

select_type:查询类型

table:表名,输出行所引用的表的名称,也有可能是以下值(其他文章会进行详细介绍)之一

<unionM,N>:M和N的id结果并集

<derivedN>:表示N的id派生结果,可能来自from的子句中的子查询

<subqueryN>:子查询结果id的N

partitions:匹配记录的分区。NULL用于非分区表

type:连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。

possible_keys:可供选择的可能索引,存在这些索引,但查询的时候有些可能不会使用

key:使用到的实际索引名。如果没有选择索引,值是NULL。如果key是NULL,那么Mysql找不到可用于更有效地执行查询地索引,可以采取强制索引方式。

key_len:索引长度。

ref: 显示从表中查询的时候与key中的索引进行比较,和索引匹配的列或者常量

rows:扫描估计的行数。该值是个预估值。

filtered:按条件过滤的百分比。最大100,意味着没有进行过滤。rows*filtered=实际关联的表下面的数据

extra:详细说明。包含有关Mysql如何解析查询的附加信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值