【分享】mysql 一些边缘值
Specified key was too long; max key length is 767 bytes;
在数据库中,索引的字段设置太长了,导致不支持。【根本原因:5.6+版本的innodb大长度前缀默认是关闭的】。
mysql建立索引时,数据库计算key的长度是累加所有index用到的字段的char长度,在按照下面的比例乘起来
不能超过限定的key长度767:
latin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
utf8mb4 = 4byte = 1character
gbk = 2 byte = 1 character
解决方案参考:
Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535
出错原因:这是由于MySQL要求一个行的定义长度不能超过65535而导致的,具体而言:
(1)单行最大超过65535(这里不包括TEXT、BLOB),则会报此错误;
(2)单个字段如果大于65535,也会报此错误。