mysql explain字段含义,Mysql explain中的关键字段(通俗易懂篇)
作者:可爱猪猪 - 帅锅一枚
作者的网名很阔爱,如果喜欢本文章一定要点 喜欢 或者 打赏,拜托~
作者一直在进步,需要你们的支持和鼓励,谢谢!
人生理想:在程序猿界混出点名堂!
请读者,认真读完这篇文章,一定可以解开你心中多年的谜团!
1.possible_keys
条件字段在索引中存在,则将该索引列出。
注意:如果用到了索引,也就是key不为空,但possible_keys为空,那么使用了覆盖索引。
所谓覆盖索引,就是查询的时候select 的列就是索引字段。
2.key
使用的索引
这里使用的索引,并不代表一定用上了索引,用没用索引,以及索引如何用的还要取决于type字段
3.key_len
索引字段的长度,跟查询的结果集无关。只是跟索引字段的定义的长度有关。
这里需要搞懂两个问题:
如何计算索引长度
我直接说结果免的去看网上那么多测试和长篇大论
一般数据库采用utf-8,
varchar类型的长度为3*len+2
char类型的长度为3len
int类型的长度4
bigint的长度是8
此外,如果是null,在以上的基础+1,
题外话:mysql建议字段设置为not null来节省空间,此外int(10)并不是说占10个字节或者10位的长度,而只是不满10位填0,仅展示用
举例:
utf-8下 a varchar(10) 长度为3(utf-8)10+2(varchar)+1(null) = 33
key_len的作用
主要看用的联合索引的长度,
对于联合索引来说,只能根据type和key来判断用没有用上索引,用的哪个索引,但是索引用的哪个字段并推理不出,所以根据key_len和最左原则来推断。
至于网上有些文章说它越小越好,不一定有道理。比如联合索引全部使用key_len就比较大,但性能就好。
4.type
表示是否用上索引,以及索引是如何使用的,此字段决定索引的性能。
先看结果,性能由低到高:
ALL
ALL:全表扫描
TYPE:扫描全表的顺序是按照索引顺序扫描的
RANGE:between或者“>”这种符号的时候会出现这个
REF:经作者多次验证发现,非唯一索引或者非主键,也就是你的查询条件有可能返回多条结果,则为REF
CONST:经作者多次验证发现,不管是联合唯一索引还是主键,也就是你的查询条件是唯一的,则为CONST
5.extra
以下两个比较重要:
using index:出现这个说明mysql使用了覆盖索引,避免访问了表的数据行,效率不错!通俗的说也就是查询的列不需要回表,在索引树上就能拿到结果
using where:这说明服务器在存储引擎收到行后将进行过滤。有些where中的条件会有属于索引的列,当它读取使用索引的时候,就会被过滤,所以会出现有些where语句并没有在extra列中出现using where这么一个说明。
微信公众号:可爱猪猪聊程序,每天连载更新,内容易懂、精彩不断。
mysql explain字段含义,Mysql explain中的关键字段(通俗易懂篇)相关推荐
- mysql修改字段的顺序_Mysql中如何修改字段的排列顺序?
创建数据表的数据,字段在表中的位置已经确定了.但要修改字段在表中的排列位置,则需要使用ALTER TABLE语句来处理.在MySQL中,修改字段排列位置的基本语法格式如下: ALTER TABLE M ...
- linux操作系统字段含义,Linux系统 /etc/fstab各个字段含义解释
Linux系统 /etc/fstab各个字段含义解释 # fstab文件的作用 文件/etc/fstab存放的是系统中的文件系统信息.当正确的设置了该文件,则可以通过"mount /dire ...
- linux中top命令cpu,ps命令中的%CPU字段和top命令中的%CPU字段
一.ps命令中%CPU字段的含义 1."man ps"中的解释 CPU usage is currently expressed as the percentage of time ...
- shell之实战应用一(查找xml文档中的关键字段)
前几天同事问我一个问题,说如下的文档中,如何把name后面的字段(红色框中的字段)单独打印出来? 其实这个很简单,先用sed过滤,然后用cut分割显示即可实现,如下: sed -n '/name/p' ...
- 继承能够访问父类私有字段_在单元测试中访问私有字段
继承能够访问父类私有字段 首先,让我大声说一下,您需要将代码设计为可测试的,以便通过公共方法测试私有字段. 但是,(" buts"是人们仍在编程而不是计算机本身的原因,所以在这里很 ...
- java 获取继承字段_java – 从类中获取所有字段(甚至是私有的和继承的)
我在做大学项目. 我需要从类中获取所有字段.甚至私人和继承.我试图获取所有声明字段,然后投射到超类并重复. 我的代码片段: private void listAllFields(Object obj) ...
- oracle删除字段约束条件,Oracle 数据库中关于对表字段约束的操作(设置、删除、查询)...
Oracle 数据库中关于对表字段约束的操作(设置.删除.查询) 1. 给表的单个字段加约束 SQL> ALTER TABLE 表名 ADD UNIQUE(字段名); 2. 删除表的单个字段约束 ...
- mysql explain字段含义,MySQL(十七):EXPLAIN 输出信息之 Extra 字段解释
Child of 'table' pushed join@1 (JSON: message text) This table is referenced as the child of table i ...
- mysql long raw_读取Oracle数据库中LONG RAW字段会抛出异常
我使用Spring Boot + MyBatis + druid1.0.23读取表中的Long RAW字段时出现异常,然后我又使用Spring里的SingleConnectionDataSource能 ...
最新文章
- linux下用phpize给PHP动态添加扩展
- Android BrocastReceiver解析
- Knative 实践:从源代码到服务的自动化部署
- springJAR包和配置文件
- python解决问题asp_用python实现面向对像的ASP程序实例
- 批处理文件总结(三)
- GCD牛逼的中枢调度器
- DevOps - 配置管理 - Ansible
- Druid实用笔记001---Druid 介绍及配置
- sqlmap能测试java么_ibatis框架如何测试?ibatis入门解析
- 单片机c语言 arduino,单片机C语言程序设计实训100例——基于Arduino+Proteus仿真
- ajax struts2 乱码,struts,ajax出现乱码的解决方法
- zend studio php插件,Zend Studio使用技巧两则 zend studio安装 zend studio 插件 zend studio 中文...
- IE-LAB网络实验室:HCNP培训机构 HCIE培训中心 HCIE认证培训 HCNA培训 华为面试考试时需要注意什么
- 华为ensp模拟校园网/企业网实例(精品拓扑图)
- 偏最小二乘法PLS和PLS回归的介绍及其实现方法
- 使用moviepy为视频添加字幕
- V10抢单系统源码(新增连单管理功能)
- 华为digix算法大赛2020机器学习赛道-搜索相关性初赛A/B榜rank1
- 今日发现一个挺好的软件,控制音量 App音量控制(App Volume Control)v2.17 安卓版