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
讨论数量: 1

可以数据库侧修改配置参数

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
智能开发工程师 @ 有临医药
文章
203
粉丝
307
喜欢
458
收藏
840
排名:87
访问:5.2 万
私信
所有博文