我知道如果长度> 255,则需要 2 个字节来存储长度前缀。我只需要验证我的假设。请告诉我字符集(latin1,ucs2,utf8mb4)的长度前缀和字符串('abcd')的长度。对于 varchar(20) 列。文件说:
[...]对于字符串“abcd”,L 为 4,存储要求为 5 个字节。如果同一列改为使用 ucs2 双字节字符集,则存储要求为10 个字节:'abcd' 的长度为 8 个字节,该列需要两个字节来存储长度,因为最大长度大于 255 (最多 510 个字节)。[...]
参考: 11.7 数据类型存储要求(Oracle | Docs)
我只是不明白为什么对于带有字符集'ucs2'的'abcd',即使它小于255,它也需要2字节长度的前缀。