我需要将数据存储到MySQL中。它的长度不固定,长度可以是255或2个字符。我应该使用TINYTEXT还是VARCHAR以节省空间(速度无关紧要)?
答案 0 :(得分:5)
对于数据存储空间,VARCHAR(255)
和TINYTEXT
是等效的:
VARCHAR(M):如果列值需要0 - 255个字节,则为L + 1个字节;如果值可能需要超过255个字节,则为L + 2个字节。
TINYTEXT :L + 1个字节,其中L <1。 2 8
来源:MySQL Reference Manual: Data Storage Requirements。
存储空间相同,您可能需要查看以下Stack Overflow帖子,以便进一步阅读何时使用其中一个:
答案 1 :(得分:5)
使用VARCHAR时,您需要指定将存储在该列中的最大字符数。因此,如果将列声明为VARCHAR(255),则表示您可以存储最多255个字符的文本。这里重要的是,如果你插入两个字符,只会存储这两个字符,即分配的空格将是2而不是255。
TINYTEXT是四种TEXT类型之一。它们与VARCHAR非常相似,但差异很小(这取决于您使用的MySQL版本)。但是对于5.5版本,TEXT类型有一些限制。首先,您必须为TEXT上的索引指定索引前缀长度。另一个是TEXT列不能有默认值。
通常,TEXT应该用于(非常)长的值。如果您将使用最多255个字符的字符串,那么您应该使用VARCHAR。
希望这会有所帮助。