【问题标题】:Is it wise to declare a VARCHAR with a value greater than 255 in MySQL?在 MySQL 中声明值大于 255 的 VARCHAR 是否明智?
【发布时间】:2011-06-09 05:32:35
【问题描述】:

我刚刚在文档中注意到,在大于 5.0.3 的 MySQL 版本中,您可以使用大于 255 的值声明 varchar。过去我已经切换了大于 255 的数据类型,但我想知道它是否更好现在练习使用 varchar(1000) 或任何合适的长度来定义更大的字符串值。

现在这在其他数据库中也很常见,还是最好坚持使用 255 作为最大值并更改高于该值的数据类型?

【问题讨论】:

标签: mysql database


【解决方案1】:

正如@Eric 指出的答案所暗示的那样,VARCHAR 存储在表中,而 TEXT 存储在单独的文件中 - 设计表结构时唯一真正重要的一点是行大小限制(MySQL将每行/记录限制为 65 KB)。

我建议您将 VARCHAR 用于“单行” - 将文本输入作为其数据源的任何内容。

【讨论】:

    【解决方案2】:

    在我看来,我不鼓励接近。当你需要超过 255 个字符时,使用 TEXT 更合适一些。

    更新: VARCHAR 现在限制为 65535 字节,但 MySQL 中的一行不能包含超过 65535 字节。

    您必须知道 VARCHAR 和类似的字段会直接存储到您的数据库中,例如 TEXT 将存储在行之外,为什么行内的指针链接到它。

    因此,如果您想使用大 VARCHAR,请确保它们不会太大并且不会干扰行中的其余数据。

    例如,拥有最多可包含 65K 字符的多个 VARCHAR 字段将是一个坏主意。

    【讨论】:

    【解决方案3】:

    VARCHAR 列限制为 65,535 个字节,这并不总是意味着 65,535 个字符,具体取决于您使用的字符集。

    如果您使用每个字符一个字节的latin1 字符集,您不会遇到任何问题,因为字符串的长度与所需的存储量相同。

    如果您使用存储多字节字符的字符集,您只能将长度设置为字符集允许的长度。例如,utf8 字符集的最大长度为 21,844 个字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 2011-03-06
      相关资源
      最近更新 更多