End.

MySQL字符串字段给索引,索引字段的长度多少?


索引报错,1089 - Incorrect prefix key;the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys


我们知道MySQL的字符串字段,长度可以几千上万。比如varchar最大支持65535长度。char最大长度255。

所以在建立字符串字段索引的时候一般要加上索引的长度。


1、utf8字符集编码

对于字段编码为utf8的,索引长度小于等于1023才能创建索引,否则会创建失败。


2、utf8mb4字符集编码

对于字段编码为utf8mb4的,索引长度小于等于767才能创建索引,否则会创建失败。


(我们一般使用utf8mb4),所以我们记住767这个数字就好了。

utf8 - 1023

utf8mb4 - 767


End.