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

posted @ 2021-10-20 09:34  Sy97  阅读(454)  评论(0)    收藏  举报