explain关键字浅析

explain关键字

关于explain的浅析
查询

explain解析

1.id列:

select的序列号,有几个select就有几个id,并且id是按照select出现的顺序增长的,id列的值越大优先级越高,id相同则是按照执行计划列从上往下执行,id为空则是最后执行。

2.select_type列:

表示对应的是简单查询还是复杂查询

3.table列:

表示当前行访问的是哪张表

4.partitions列:

查询将匹配记录的分区。 对于非分区表,该值为 NULL。

5.type类型:

此列表示关联类型或访问类型。也就是MySQL决定如何查找表中的行。依次从最优到最差分别为:system > const > eq_ref > ref > range > index > all。

6.possible_keys:

此列显示在查询中可能用到的索引。

7.key列:

此列显示MySQL在查询时实际用到的索引。

8.key_len列:

此列显示MySQL在索引里使用的字节数,通过此列可以算出具体使用了索引中的那些列。

key_len计算
1.索引字段,**非NOT NULL**,加1个字节。
2.定长字段:tinyiny占1个字节、int占4个字节、bitint占8个字节、date占3个字节、datetime占5个字节,char(n)占n个字符。
3.变长字段:varchar(n)占n个字符+2个字节。
4.不同的字符集,一个字符占用的字节数不同:
各编码字符:
latin1编码,每个字符占用一个字节
gbk编码,每个字符占用两个字节
utf8编码,每个字符占用三个字节
utf8mb4编码,每个字符占用四个字节

9.ref列:

此列显示key列记录的索引中,表查找值时使用到的列或常量。常见的有const、字段名。

10.rows列:

此列是MySQL在查询中估计要读取的行数。注意这里不是结果集的行数。

11.Extra列:

1)Using index:使用覆盖索引(如果select后面查询的字段都可以从这个索引的树中获取,不需要通过辅助索引树找到主键,再通过主键去主键索引树里获取其它字段值,这种情况一般可以说是用到了覆盖索引)。
2)Using where:使用 where 语句来处理结果,并且查询的列未被索引覆盖。
3)Using index condition:查询的列不完全被索引覆盖,where条件中是一个查询的范围。
4)Using temporary:MySQL需要创建一张临时表来处理查询。出现这种情况一般是要进行优化的。
5)Using filed sort:将使用外部排序而不是索引排序,数据较小时从内存排序,否则需要在磁盘完成排序。
6)Select tables optimized away:使用某些聚合函数(比如 max、min)来访问存在索引的某个字段时。

Explain关键字MySQL中一种用于查询和解释SQL语句执行计划的工具。通过使用Explain关键字,我们可以了解查询语句中每个列的含义和执行过程。 当使用Explain关键字时,会返回一系列列,包括id、select_type、table、type、possible_keys、key、key_len、ref、rows和Extra等。 其中,possible_keys列显示查询可能使用的索引,而key列显示实际选择的索引。如果possible_keys列有值,而key列显示为NULL,则说明MySQL认为在这种情况下索引对查询帮助不大,选择了全表扫描。在这种情况下,我们可以通过检查WHERE子句来确定是否可以创建适当的索引来提高查询性能,并使用Explain来查看效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Mysql Explain关键字详解](https://blog.csdn.net/Limelimelimes/article/details/128420879)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值