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 协议》,转载必须注明作者和本文链接
• 15年技术深耕:理论扎实 + 实战丰富,教学经验让复杂技术变简单 • 8年企业历练:不仅懂技术,更懂业务落地与项目实操 • 全栈服务力:技术培训 | 软件定制开发 | AI智能化升级 关注「上海PHP自学中心」获取实战干货
wangchunbo
讨论数量: 1

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

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 某医疗行业
文章
315
粉丝
354
喜欢
568
收藏
1141
排名:60
访问:12.6 万
私信
所有博文
社区赞助商