我有一个MySQL表,其中一列是“varchar(255)”。即使该列为空,数据库也会使用255字节的空间吗?或者只有它有一些数据并且使用的空间量与数据成正比?
答案 0 :(得分:1)
每个单元格只占用与数据成比例的空间量。 http://dev.mysql.com/doc/refman/5.0/en/char.html
答案 1 :(得分:0)
只有当它有一些数据并且使用的空间量与数据成比例时才会发生。
答案 2 :(得分:0)
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)字段上消耗(数据长度+ 1)。