MySQL索引长度(key_len)计算

计算规则

1.索引字段,没有设置NOT NULL,则需要加一个字节。
2.定长字段:tinyiny占1个字节、int占4个字节、bitint占8个字节、date占3个字节、datetime占5个字节,char(n)占n个字符。
3.变长字段:varchar(n)占n个字符+2个字节。
4.不同的字符集,一个字符占用的字节数不同:

latin1编码,每个字符占用一个字节
gbk编码,每个字符占用两个字节
utf8编码,每个字符占用三个字节
utf8mb4编码,每个字符占用四个字节

例子

字段:phone varchar(20) DEFAULT NULL COMMENT ‘手机号’
条件:where phone=‘xxx’
通过explain查看key_len
utf8mb4编码下,key_len=83,即20*4+2+1
utf8编码下,key_len=63,即20*3+2+1
————————————————
版权声明:本文为CSDN博主「程序员Forlan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36433289/article/details/114961720

posted @ 2021-05-25 10:13  程序员Forlan  阅读(1040)  评论(0编辑  收藏  举报