MySQL索引长度(key_len)计算
计算规则1.索引字段,没有设置not null,则需要加一个字节。2.定长字段:int固定占四个字节、date占三个字节、char(n)占n个字符,3.varchar(n)占n个字符+2个字节。4.不同的字符集,一个字符占用的字节数不同latin1编码,每个字符占用一个字节gbk编码,每个字符占用两个字节utf8编码,每个字符占用三个字节utf8mb4编码,每个字符占用四个字节例子可以通过expl
·
计算规则
1.索引字段,非NOT NULL,加1个字节。
2.定长字段:tinyint占1个字节、int占4个字节、bigint占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

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)