Specified key was too long; 解决方案

最近在创建三个字段联合唯一索引。发现提示

图片

Specified key was too long; max key length is 1000 bytes

问题原因#

MySQL 在建立索引时,数据库会先计算 Index 用到的字段长度(按下面比例乘起来不能超过限定的 key 长度 1000):
latin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character

比如:

两个字段长度均设置为 255,当为 utf8 时,索引字段的长度为:(2553+2553)= 1530 > 1000

解决方案#

Specified key was too long;  解决方案

这样就可以了。

调整字段的长度,让索引占用的字节长度小于 1000,就可以正常创建索引

比如:

将字段长度由 255 调整为 127 ,这样上述的情况:(1273+1273)= 762 < 1000

本作品采用《CC 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海 PHP 自学中心
wangchunbo
司机 @ 某医疗行业
文章
312
粉丝
352
喜欢
565
收藏
1135
排名:61
访问:12.6 万
私信
所有博文
社区赞助商