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自学中心 付费知识星球:破解面试:程序员的求职导师
讨论数量: 1

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

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 欣昊玉
文章
273
粉丝
339
喜欢
558
收藏
1106
排名:64
访问:12.2 万
私信
所有博文
社区赞助商