过去几天一直在寻找从各种受支持的 MySQL 字符集转换为使用 utf8mb4 的任何陷阱。大多数人面临的最大问题似乎是 4 字节字符意味着 InnoDB 索引的最大长度,对于像 VARCHAR 这样的列类型,限制为 191 而不是 255。它还提到非-indexed VARCHAR 列应该是 191 而不是 255。
测试后,我发现如果列已编入索引,则在将列转换为 255 时会收到错误消息,但未编入索引时则不会。如果将来没有索引非索引 VARCHAR 列的长度从 255 减少到 191,是否有任何理由将其减少?
最佳答案
阅读this有关 767 限制和各种解决方法的讨论。请注意,一种解决方法是更新到版本 5.7,这会将限制增加到 3KB 以上。
(我正在更改您的标题,因为整理与问题无关。)
关于MySQL CHARACTER SET utf8mb4 VARCHAR 长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48500355/