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
解决方案
这样就可以了。
调整字段的长度,让索引占用的字节长度小于 1000,就可以正常创建索引
比如:
将字段长度由255调整为127 ,这样上述的情况:(1273+1273)= 762 < 1000
本作品采用《CC 协议》,转载必须注明作者和本文链接
可以数据库侧修改配置参数