2010-08-29 165 views

回答

4

手册页Data Type Storage Requirements更详细地描述了MyISAM引擎的每种数据类型的存储需求。

Data Type Storage Required 
CHAR(M)  M × w* bytes, 0 <= M <= 255 
VARCHAR(M) L + 1 bytes if column values require 0 – 255 bytes 
      L + 2 bytes if values may require more than 255 bytes 
TINYTEXT L + 1 bytes, where L < 2^8 
TEXT  L + 2 bytes, where L < 2^16 

* w是在字符的最大长度的字符所需要的字节数在结论设置

所以为字符串存储在文本列所需的存储的字节数依赖于字符串的长度。这与CHAR(100)不同,不管存储的字符串的长度如何,都需要相同的存储量。

+0

我认为用户是指MySQL中的'TEXT'类型,在http://dev.mysql.com/doc/refman/5.1/en/blob.html中有描述。 – MvanGeest 2010-08-29 21:00:18

+0

我认为用户实际上是指'TEXT'类型,而不是'CHAR'或'VARCHAR'(尽管手册中说'TEXT'在大多数方面可以被视为'VARCHAR')。 – MvanGeest 2010-08-29 21:03:01

+0

哦,我明白你的意思了,他特别想知道TEXT列的类型。我没有注意到它在标题中被大写(我正在回答基于问题的主体)。我会更新我的答案,使其更具体。 – 2010-08-29 21:03:05