开发者社区> 问答> 正文

MySQL VARCHAR长度和UTF-8?mysql

在MySQL中,如果我VARCHAR(32)在UTF-8表中创建一个新字段,是否意味着我可以在该字段中存储32个字节的数据或32个字符(多字节)?

展开
收起
保持可爱mmm 2020-05-17 11:48:33 736 0
1 条回答
写回答
取消 提交回答
  • 这个答案出现在我的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

    2020-05-17 11:54:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像