【发布时间】:2011-09-19 12:35:11
【问题描述】:
我有一个 MySQL 表,其中包含“varchar(255)”之类的列之一。即使该列为空,数据库是否会使用 255 字节的空间?还是只有当它有一些数据并且使用的空间量与数据成正比时?
【问题讨论】:
标签: mysql
我有一个 MySQL 表,其中包含“varchar(255)”之类的列之一。即使该列为空,数据库是否会使用 255 字节的空间?还是只有当它有一些数据并且使用的空间量与数据成正比时?
【问题讨论】:
标签: mysql
每个单元格将只占用与数据成比例的空间量。 http://dev.mysql.com/doc/refman/5.0/en/char.html
【讨论】:
只有当它有一些数据并且使用的空间量与数据成正比时。
【讨论】:
VARCHAR(M) 需要 N+1 个字节 或更多,具体取决于您要添加的数据的大小。空白字段(空字符串)仍将消耗 1 个字节(即 N+1 上的 +1),用于指示该字段的数据结束的位置 - 因此您有 1 个字节作为终止符。
VARCHAR(M), VARBINARY(M)
L + 1 bytes if column values require 0 – 255 bytes,
L + 2 bytes if values may require more than 255 bytes
其中 L 是数据的长度。在您的情况下,您将在 VARCHAR(255) 字段上消耗 (data length + 1)。
【讨论】: