原本表中orderNo字段长度50位,因为业务原因要扩充值255位。但是执行的过程中出现异常
Specified key was too long; max key length is 767 bytes
排查
InnoDB有单个索引最大字节数 768 的限制,而字段定义的是能存储的字符数,比如 VARCHAR(200)
代表能够存200个汉字,索引定义是字符集类型最大长度算的,
即 utf8 maxbytes=3, utf8mb4 maxbytes=4
算下来utf8和utf8mb4两种情况的索引长度分别为600 bytes和800bytes,后者超过了768,导致出错:Error 1071: Specified key was too long; max key length is 767 bytes
。
因此255*4=1020;超过了索引最大长度767字节;
解决
降低字段长度到767字节以内
767/4=191.75
因此字段长度小于191.75即可。
参考
本文由 SAn 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2020/05/14 20:36
好好学习,天天来逛