FAQ系列 | 解读EXPLAIN执行计划中的key_len

简介: FAQ系列 | 解读EXPLAIN执行计划中的key_len

导读

EXPLAIN中的key_len一列表示什么意思,该如何解读?

EXPLAIN执行计划中有一列 key_len 用于表示本次查询中,所选择的索引长度有多少字节,通常我们可借此判断联合索引有多少列被选择了。

在这里 key_len 大小的计算规则是:

  • 一般地,key_len 等于索引列类型字节长度,例如int类型为4-bytes,bigint为8-bytes;
  • 如果是字符串类型,还需要同时考虑字符集因素,例如:CHAR(30) UTF8则key_len至少是90-bytes;
  • 若该列类型定义时允许NULL,其key_len还需要再加 1-bytes;
  • 若该列类型为变长类型,例如 VARCHAR(TEXT\BLOB不允许整列创建索引,如果创建部分索引,也被视为动态列类型),其key_len还需要再加 2-bytes;

综上,看下面几个例子:

列类型 key_len 备注
id int key_len = 4+1 = 5 允许NULL,加1-byte
id int not null key_len = 4 不允许NULL
user char(30) utf8 key_len = 30*3+1 允许NULL
user varchar(30) not null utf8 key_len = 30*3+2 动态列类型,加2-bytes
user varchar(30) utf8 key_len = 30*3+2+1 动态列类型,加2-bytes;允许NULL,再加1-byte
detail text(10) utf8 key_len = 30*3+2+1 TEXT列截取部分,被视为动态列类型,加2-bytes;且允许NULL


备注,key_len 只指示了WHERE中用于条件过滤时被选中的索引列,是不包含 ORDER BY/GROUP BY 这部分被选中的索引列。

例如,有个联合索引 idx1(c1, c2, c3),3个列均是INT NOT NULL,那么下面的这个SQL执行计划中,key_len的值是8而不是12:

SELECT…WHERE c1=? AND c2=? ORDER BY c1;


关于MySQL的方方面面大家想了解什么,可以直接留言回复,我会从中选择一些热门话题进行分享。 同时希望大家多多转发,多一些阅读量是老叶继续努力分享的绝佳助力,谢谢大家 :)


最后打个广告,运维圈人士专属铁观音茶叶微店上线了,访问:http://yuhongli.com 获得专属优惠

相关文章
|
机器学习/深度学习 文字识别 API
阿里云视觉智能开放平台身份证识别PHP SDK使用示例
文字识别技术基于阿里云深度学习技术,为您提供通用的印刷文字识别和文档结构化等能力。文字识别技术可以灵活应用于证件文字识别、发票文字识别、文档识别与整理等行业场景,满足认证、鉴权、票据流转审核等业务需求。本文以RecognizeIdentityCard API为例,结合PHP SDK演示接口调用。
1189 0
阿里云视觉智能开放平台身份证识别PHP SDK使用示例
|
机器学习/深度学习 人工智能 自然语言处理
支付宝资深专家王维强:服务12亿用户的支付宝需要怎样的安全人才?
现在,支付宝安全团队正在招募应届生人才,欢迎投递简历。
4335 0
支付宝资深专家王维强:服务12亿用户的支付宝需要怎样的安全人才?
|
安全 Shell Serverless
FPGA资源平民化的新晋- F3 技术解析
FPGA (现场可编程门阵列)由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域大放异彩。一路走来,FPGA并非一个新兴的硬件器件,由于其开发门槛过高,硬件加速算法的发布和部署保护要求非常高,FPGA的使用一直是高冷的美人,没有走入平常百姓家。
5707 0
|
测试技术 开发者
|
2月前
|
人工智能 机器人 Serverless
打造云端数字员工:OpenClaw 的 SAE 弹性托管实践
OpenClaw(原Clawdbot/Moltbot)GitHub星标破14万,标志AI从对话框迈向自主智能体。它以轻量CLI启动本地网关,提供安全、持久、可扩展的Agent运行时:通过插件化接入多平台、向量记忆支持长期决策、Docker沙箱+Headless Chromium保障安全执行。依托阿里云SAE全托管Serverless环境,零运维实现DinD、弹性扩缩与高可用,让AI真正成为可交付结果的“数字员工”。
|
3月前
|
存储 弹性计算 缓存
阿里云4核云服务器价格详解:最新收费标准与4核8G、4核16G等配置活动价格参考
阿里云4核云服务器(vCPU)凭借多样化实例规格(如经济型e、通用算力型u2a、计算型c9i等),覆盖从个人到企业的全场景需求。价格方面,提供包年包月、按量付费等灵活计费模式,具体价格随配置(内存、带宽、存储)差异显著,如经济型e实例4核8G配置年付约1595.11元起,计算型c9i实例4核8G年付约3147.56元。活动期间可享u2a实例2.5折、九代云服务器年付6.4折起及新客专属补贴,适配个人博客、企业官网、在线教育、电商、大数据分析等场景。

热门文章

最新文章

下一篇
开通oss服务