2011-02-10 280 views

回答

4

一个字节= 8位。 2^8 == 256个不同的值,但您必须处理0,因此范围为0-255。

+0

请帮助我理解 - CHAR如何处理0 - 如果您将CHAR的长度设置为0,那么需要一个字节来存储? – 2011-02-10 09:54:28

1

作为每文档:http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

CHAR(M)M×瓦特个字节,0 < = M < = 255,其中w是在字符的最大长度的字符所需要的字节数如果列中的值需要设置为0
VARCHAR(M),VARBINARY(M)L + 1个字节 - 255字节,L + 2个字节,如果值可能需要超过255个字节

CHAR是一个固定长度的型 - 它将始终存储最大长度不管字符串是否全部使用它,然而它会使用1个字节来存储实际的字符串长度。

VARCHAR是可变长度,它将存储为只需要尽可能多的字节,加上一个或两个字节,以保持它们的长度。字符最大长度为255个字节,长度为1个字节,字符长度为65533个字节,长度为2个字节。