MySQL CHARACTER SET utf8mb4 VARCHAR长度

时间:2018-01-29 11:36:34

标签: mysql utf-8 character-encoding utf8mb4

过去几天花了很多时间寻找从各种支持的MySQL字符集到使用utf8mb4的转换。似乎大多数人面临的最大问题是4字节字符意味着对于像VARCHAR这样的列类型,InnoDB索引的最大长度限制为191而不是255.它还提到了非大小的列大小-indexed VARCHAR列应该是191而不是255。

经过测试,我发现在将列转换为255时,如果已将其编入索引,则会收到错误,但在未编制索引时则不会。如果将来没有计划将其编入索引,是否有任何理由将非索引VARCHAR列的长度从255减少到191?

1 个答案:

答案 0 :(得分:3)

阅读this以了解有关767限制和各种变通方法的讨论。请注意,一种解决方法是更新到5.7版,这会将限制增加到3KB。

(我正在更改你的标题,因为整理与问题无关。)