在MySQL中,如果我VARCHAR(32)在UTF-8表中创建一个新字段,是否意味着我可以在该字段中存储32个字节的数据或32个字符(多字节)?
这个答案出现在我的Google搜索结果的顶部,但不正确,所以:
混乱可能是由于测试了不同版本的mysql。
版本4计数字节 版本5包含字符 http://dev.mysql.com/doc/refman/5.0/zh-CN/string-type-overview.html
MySQL以字符单位解释字符列定义中的长度规范。(在MySQL 4.1之前,列的长度以字节为单位进行解释。)这适用于CHAR,VARCHAR和TEXT类型。
有趣的是(我没想过)varchar列的最大长度受utf8的影响如下:
在MySQL 5.0.3及更高版本中,VARCHAR的有效最大长度取决于最大行大小(65,535字节,在所有列之间共享)和所使用的字符集。例如,utf8字符每个字符最多需要三个字节,因此使用utf8字符集的VARCHAR列可以声明为最多21,844个字符。来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。