【问题标题】:mysql -field for textmysql - 文本字段
【发布时间】:2011-08-18 23:48:38
【问题描述】:

我需要在表格中使用一个字段来存储一些文本。文字限制为 300 个字符。

选项的最佳选择是什么:varchar (300)text

【问题讨论】:

    标签: mysql sql string types


    【解决方案1】:

    VARCHAR 和 TEXT 列非常相似。 manual 说:

    在大多数情况下,您可以将 BLOB 列视为 VARBINARY 列,可以任意大。同样,您可以将 TEXT 列视为 VARCHAR 列。

    这里有一些区别:

    1. TEXT 列在末尾填充空白以用于索引目的
    2. TEXT 列不能有默认值
    3. 如果文本所需的字节数小于 256,则 VARCHAR 列只有 1 个字节的开销。(特定文本所需的字节数取决于编码。)TEXT 列总是有 2 个字节的开销。
    4. VARCHAR 列中的所有文本都计入 65,535 字节的行限制。 TEXT 列的文本单独存储,不计入此限制。

    【讨论】:

      【解决方案2】:

      使用VARCHAR(300) - 如果规范要求限制为 300 个字符,您不希望支持超过此限制。我将不得不挖掘我的答案,但有人报告说通过将他们的 TEXT 列迁移到 VARCHAR 得到了实质性的改进。

      【讨论】:

        【解决方案3】:

        如果您有任何理由担心内存,varchar 将只分配已使用的内存。我不确定text 是如何做到的,但我会使用varchar (300)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-24
          • 1970-01-01
          • 2011-01-10
          • 1970-01-01
          • 1970-01-01
          • 2011-07-06
          • 2011-02-05
          • 2017-12-05
          相关资源
          最近更新 更多