首页 > 试题

explain是什么意思

更新时间:2022-12-07 01:56:26 阅读: 评论:0

新东方中考全托-10毫米等于多少厘米


2022年12月7日发(作者:英语迷语)

【MySql】解读EXPLAIN执⾏计划中的key_len字段⼤⼩的计

算规则

解读EXPLAIN执⾏计划中的key_len

导读

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

EXPLAIN执⾏计划中有⼀列key_len⽤于表⽰本次查询中,所选择的索引长度有多少字节,通常我们可借此判断联合索引有多少列被选择

了。

在这⾥key_len⼤⼩的计算规则是:

a、⼀般地,key_len等于索引列类型字节长度,例如int类型为4-bytes,bigint为8-bytes;

b、如果是字符串类型,还需要同时考虑字符集因素,例如:CHAR(30)UTF8则key_len⾄少是90-bytes;

c、若该列类型定义时允许NULL,其key_len还需要再加1-bytes;

d、若该列类型为变长类型,例如VARCHAR(TEXTBLOB不允许整列创建索引,如果创建部分索引,也被视为动态列类型),其key_len还需要再加2-bytes;

综上,看下⾯⼏个例⼦:

列类型KEY_LEN备注

idintkey_len=

4+1=5

允许NULL,加1-byte

idintnotnullkey_len=4不允许NULL

urchar(30)utf8key_len=

30*3+1

允许NULL

urvarchar(30)not

nullutf8

key_len=

30*3+2

动态列类型,加2-bytes

urvarchar(30)

utf8

key_len=

30*3+2+1

动态列类型,加2-bytes;允许NULL,再加1-

byte

detailtext(10)utf8key_len=

30*3+2+1

TEXT列截取部分,被视为动态列类型,加2-

bytes;且允许NULL

备注:key_len只指⽰了WHERE中⽤于条件过滤时被选中的索引列,是不包含ORDERBY/GROUPBY这部分被选中的索引列。

例如,有个联合索引idx1(c1,c2,c3),3个列均是INTNOTNULL,那么下⾯的这个SQL执⾏计划中,key_len的值是8⽽不是12:

本文发布于:2022-12-07 01:56:26,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/56639.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:心境的意思
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图