博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql的key_len计算方法
阅读量:6591 次
发布时间:2019-06-24

本文共 1110 字,大约阅读时间需要 3 分钟。

说明

使用mysql的explain时,ken_len表示索引使用的字节数,根据这个值,就可以判断索引使用情况,特别是在组合索引的时候,判断所有的索引字段是否都被查询用到。

环境

Mysql 5.6.19-log

计算基础

1. 数据类型本身占字节长度

int(11)  4tinyint(4)  1timestamp  4datetime  8

2. 索引字段的附加信息

定长类型:char\int\datetime等,需要有是否为空的标记,占用1个字节。如果字段定义为非空(not null)时,不占用字节。变长类型:varchar等,需要是否为空的标记和长度信息,共占用2个字节。

3. 字符集

gbk编码为:1个字符2个字节utf8编码为:1个字符3个字节utf8mb4编码为:1个字符4个字节

示例

output:| id | select_type | table    | type  | possible_keys   | key             | key_len | ref  | rows  | Extra                                              |+----+-------------+----------+-------+-----------------+-----------------+---------+------+-------+----------------------------------------------------+|  1 | SIMPLE      | tv_video | range | idx_media_audit | idx_media_audit | 167     | NULL | 18127 | Using index condition; Using where; Using filesort |KEY `idx_media_audit` (`source_type`,`ol_status`,`op_user`,`updated_at`,`created_at`) USING BTREE计算字节长度:int(11)  4 [+1 not null]tinyint(4)  1 [+1 not null]varchar(40)  40 * 4 +2timestamp()  4 [+1 not null]timestamp()  4 [+1 not null]key_len 167 = 4 + 1 + 160 + 2 = 167结论:用索引只用到了前3个字段

相关文章:

转载地址:http://prkio.baihongyu.com/

你可能感兴趣的文章
Hbuilder--让手爽,飞一般的编码(二)
查看>>
后台统计
查看>>
React组件: 提取图片颜色
查看>>
3D应用开发中的欧拉角和旋转矩阵
查看>>
爬虫必备技能xpath的用法和实战
查看>>
MacOS下安装Grafana、InfluxData、telegraf
查看>>
RxJava2.0的初学者必备教程(九)
查看>>
记一次omi的项目之旅
查看>>
Android API级别、代号、发布时间及平台亮点整理
查看>>
安装配置nagios
查看>>
QQ第三方授权登录(带详细源码)
查看>>
LLDP(链路层发现协议)
查看>>
Ubuntu14 添加程序启动
查看>>
我的友情链接
查看>>
windows网络安全以及常见网络***方式
查看>>
警告 初始化默认驱动器时出错“找不到运行 Active Directory Web 服务的默认服务器。”...
查看>>
JS字符串转换数字
查看>>
centos7-修改主机名
查看>>
面试宝典系列-mysql面试基础题
查看>>
微信硬件平台对接--蓝牙
查看>>