【发布时间】:2012-04-22 07:34:18
【问题描述】:
想知道这两种数据类型将占用多少实际存储空间,因为 MySQL 文档对此事有些不清楚。
CHAR(M) M × w 字节,0
VARCHAR(M), VARBINARY(M) L + 1 个字节,如果列值需要 0 – 255 字节,如果值可能需要超过 255 个字节,则为 L + 2 个字节
在我看来,这似乎意味着,给定一个 utf8 编码的数据库,一个 CHAR 将始终占用每个字符 32 位,而 VARCHAR 将占用 8 到 32 位,具体取决于所存储字符的实际字节长度。那是对的吗?或者 VARCHAR 是否意味着 8 位字符宽度,并且存储多字节 UTF8 字符实际上会消耗 VARCHAR 中的多个“字符”?或者 VARCHAR 是否也总是每个字符存储 32 位?很多可能性。
我以前不必担心这么多,但我开始达到内存临时表大小限制,我不一定要增加 MySQL 的可用池(第二次)。
【问题讨论】:
标签: mysql character-encoding sqldatatypes