过去几天花了很多时间寻找从各种支持的MySQL字符集到使用utf8mb4的转换。似乎大多数人面临的最大问题是4字节字符意味着对于像VARCHAR这样的列类型,InnoDB索引的最大长度限制为191而不是255.它还提到了非大小的列大小-indexed VARCHAR列应该是191而不是255。
经过测试,我发现在将列转换为255时,如果已将其编入索引,则会收到错误,但在未编制索引时则不会。如果将来没有计划将其编入索引,是否有任何理由将非索引VARCHAR列的长度从255减少到191?
答案 0 :(得分:3)
阅读this以了解有关767限制和各种变通方法的讨论。请注意,一种解决方法是更新到5.7版,这会将限制增加到3KB。
(我正在更改你的标题,因为整理与问题无关。)