千家信息网

MySQLexplain中key_len怎样计算

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,本篇文章给大家分享的是有关MySQLexplain中key_len怎样计算,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MySQL ex
千家信息网最后更新 2024年11月26日MySQLexplain中key_len怎样计算

本篇文章给大家分享的是有关MySQLexplain中key_len怎样计算,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

MySQL explain中key_len的计算

key_len表示索引使用的字节数,根据这个值可以判断索引的使用情况,特别是在组合索引的时候,判断该索引有多少部分被使用到非常重要。

在计算key_len时,下面是一些需要考虑的点:

索引字段的附加信息:

1.可以分为变长和定长数据类型讨论;

2.当索引字段为定长数据类型时,如char,int,datetime,需要有是否为空的标记,这个标记占用一个字节(对于not null来说不需要这一个字节);

3.当索引字段为变长数据类型时,如varchar,除了是否为空的标记外,还需要有长度信息,需要占用两个字节;

4.对于char,varchar,blob,text等,key_len的长度还和字符集有关,latin1 一个字符占用一个字节,gbk 一个字符占用两个字节,utf8 一个字符占用三个字节

例如:

列类型   KEY_LEN 备注

id int key_len = 4+1 int为4bytes,允许为NULL,加1byte

id bigint not nullkey_len=8 bigint为8bytes

user char(30) utf8key_len=30*3+1 utf8每个字符为3bytes,允许为NULL,加1byte

user varchar(30) not null utf8key_len=30*3+2utf8每个字符为3bytes,变长数据类型,加2bytes

user varchar(30) utf8key_len=30*3+2+1utf8每个字符为3bytes,允许为NULL,加1byte,变长数据类型,加2bytes

detail text(10) utf8key_len=30*3+2+1 TEXT截取部分,被视为动态列类型

备注:

key_len只表示了where中用于条件过滤时被选中的索引列,是不包含order by / group by 这一部分被选中的索引列的。

例如:

有一个联合索引idx(a1,b2,c3),三列均是 int not null,那么下面的执行计划中key_len的值是8,不是12

select .... from table where c1=? and c2=? order by c1;

以上就是MySQLexplain中key_len怎样计算,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

索引 字符 字节 类型 数据 字段 标记 部分 两个 信息 备注 更多 知识 篇文章 长度 定长 有关 实用 重要 三个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 思科网络技术学院pka教程 服务器托管哪个好 java数据库的删除代码 中职组网络安全大赛 计算机网络技术大一用电脑吗 全国信息网络技术专业排名 军事网络技术基础自考 南京米好网络安全 消防队开展网络安全稿件 下列不属于非文献型数据库 2020年网络安全汇报 泉州市智顶网络技术有限公司 阿里云如何保证数据库安全 数据库创建索引视图容易犯的错误 江苏行云兔互联网科技 软件开发营业执照经营范围 我的世界服务器命令方块雪球 金仓数据库换授权文件 数据库工程师工作经历 ip网络技术计算题 死亡之夜专用服务器架设 魔兽世界旧世经典服务器人数 惠普扫描服务器名称和地址 共享自动娃娃机软件开发 服务器每天重新启动的时间 软件开发的计量单位是什么 数据库 0补位 家长网络安全学校 网络安全意识的结尾怎么写 公司数据库管理员都做些什么
0