MySQL VARCHAR 长度和 UTF-8:字节与字符
在 MySQL 表中创建 VARCHAR 字段时,了解如何使用 VARCHAR 字段至关重要解释指定的长度。在 4.1 之前的 MySQL 版本中,VARCHAR 长度以字节为单位定义。但是,从 MySQL 4.1 开始,长度以字符为单位计算。
UTF-8 表中的 VARCHAR(32) 字段表示 32 个字符,而不是 32 个字节。这是因为 UTF-8 是一种变长编码,每个字符可以占用多个字节(最多 4 个字节)。
版本 5 的 MySQL 官方文档指出:
“MySQL以字符单位解释字符列定义中的长度规范。这适用于 CHAR、VARCHAR 和 TEXT 类型。”
但是,VARCHAR 的最大长度。列也受到 UTF-8 的影响。在 MySQL 5.0.3 及更高版本中,有效最大长度受到行大小(65,535 字节)和使用的字符集的限制。
例如,由于 UTF-8 字符每个字符最多需要 3 个字节,使用 UTF-8 的 VARCHAR 列最多可以声明 21,844 个字符。这是因为 21,844 乘以 3(每个字符的字节数)为 65,532,在最大行大小内为其他列数据留下了 3 个字节的缓冲区。
以上是VARCHAR 长度如何在 MySQL 中使用 UTF-8:字节或字符?的详细内容。更多信息请关注PHP中文网其他相关文章!