mysql-文本字段
我的表中需要一个字段来存储一些文本。300个字符是文本的限制mysql-文本字段,mysql,sql,string,types,Mysql,Sql,String,Types,我的表中需要一个字段来存储一些文本。300个字符是文本的限制 最佳选择是什么选项:varchar(300)或text?如果您有任何理由关心内存,varchar将只分配已使用的内存。我不确定text是如何做到的,但我会使用varchar(300)如果您有任何理由关心内存,varchar只会分配使用过的内存。我不确定text是如何做到的,但我会使用varchar(300)使用varchar(300)-如果规范要求300个字符的限制,您不希望支持超过这个限制。我将不得不挖掘我的答案,但是有人报告说通过
最佳选择是什么选项:
varchar(300)
或text
?如果您有任何理由关心内存,varchar
将只分配已使用的内存。我不确定text
是如何做到的,但我会使用varchar(300)
如果您有任何理由关心内存,varchar
只会分配使用过的内存。我不确定text
是如何做到的,但我会使用varchar(300)
使用varchar(300)
-如果规范要求300个字符的限制,您不希望支持超过这个限制。我将不得不挖掘我的答案,但是有人报告说通过将他们的TEXT
列迁移到VARCHAR使用VARCHAR(300)
-如果规范要求300个字符的限制,您不希望支持这样做。我必须找出我的答案,但有人报告说,通过将他们的TEXT
列迁移到VARCHAR
VARCHAR和TEXT列非常相似,取得了实质性的改进。报告说:
在大多数情况下,您可以将BLOB列视为VARBINARY列,该列可以任意大。类似地,可以将文本列视为VARCHAR列
以下是一些区别:
出于索引目的,文本列的末尾填充为空白
文本列不能有默认值
如果文本所需的字节数小于256,则VARCHAR列的开销只有1字节。(特定文本所需的字节数取决于编码。)文本列的开销始终为2字节
VARCHAR列中的所有文本都按65535字节的行限制计数。文本列的文本单独存储,不计入此限制
VARCHAR和TEXT列非常相似。报告说:
在大多数情况下,您可以将BLOB列视为VARBINARY列,该列可以任意大。类似地,可以将文本列视为VARCHAR列
以下是一些区别:
出于索引目的,文本列的末尾填充为空白
文本列不能有默认值
如果文本所需的字节数小于256,则VARCHAR列的开销只有1字节。(特定文本所需的字节数取决于编码。)文本列的开销始终为2字节
VARCHAR列中的所有文本都按65535字节的行限制计数。文本列的文本单独存储,不计入此限制