MySQL入口和空间使用

时间:2011-09-19 12:35:12

标签: mysql

我有一个MySQL表,其中一列是“varchar(255)”。即使该列为空,数据库也会使用255字节的空间吗?或者只有它有一些数据并且使用的空间量与数据成正比?

3 个答案:

答案 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个字节。

来自MySQL's website

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)。