MySQL字符集utf8mb4 VARCHAR长度

MySQL字符集utf8mb4 VARCHAR长度,mysql,utf-8,character-encoding,utf8mb4,Mysql,Utf 8,Character Encoding,Utf8mb4,在过去的几天里,我们一直在寻找从各种受支持的MySQL字符集到使用utf8mb4的转换。似乎大多数人面临的最大问题是,4字节字符意味着InnoDB索引的最大长度(对于VARCHAR之类的列类型)被限制为191而不是255。它还提到非索引VARCHAR列的列大小应该是191而不是255 在测试之后,我发现在将列转换为255(如果已编制索引)时确实会收到错误,但在未编制索引时不会收到错误。如果将来没有计划对非索引VARCHAR列进行索引,是否有理由将其长度从255减少到191?阅读有关767限制和各

在过去的几天里,我们一直在寻找从各种受支持的MySQL字符集到使用utf8mb4的转换。似乎大多数人面临的最大问题是,4字节字符意味着InnoDB索引的最大长度(对于VARCHAR之类的列类型)被限制为191而不是255。它还提到非索引VARCHAR列的列大小应该是191而不是255

在测试之后,我发现在将列转换为255(如果已编制索引)时确实会收到错误,但在未编制索引时不会收到错误。如果将来没有计划对非索引VARCHAR列进行索引,是否有理由将其长度从255减少到191?

阅读有关767限制和各种解决方法的讨论。请注意,一个解决方法是更新到5.7版,这将限制提高到3KB以上

(我正在更改您的标题,因为排序规则与问题无关。)

阅读以讨论767限制和各种解决方法。请注意,一个解决方法是更新到5.7版,这将限制提高到3KB以上


(我正在更改您的标题,因为排序规则与问题无关。)

升级到5.7是值得的,原因有很多,比如这样,但特别是JSON列支持。升级到5.7是值得的,原因有很多,比如这样,但特别是JSON列支持。