代码之家  ›  专栏  ›  技术社区  ›  w00

列为TEXT的性能惩罚?

  •  0
  • w00  · 技术社区  · 13 年前

    我有一个内容管理系统,用户可以在其中动态创建一个html表单。我已经为此设置了所有的表。但有一件事困扰着我,那就是输入值的文本大小。

    有些表单有文本区域,有些文本区域包含相当多的数据。但表单上也只有简单的文本字段,其中只包含几个字符的数据。

    我用于保存值的数据库表如下所示:

    形式值

    id | form_id | fk_element_id | value
    

    所以在这种情况下 value 列将保存特定字段类型的输入数据。因此,在文本字段的情况下,这将只有几个字符。但在文本区域的情况下,这可能是大量的数据。

    这意味着 价值 列的类型必须至少为 TEXT .尽管大多数类型不会超过255个字符 (MAX VARCHAR)

    现在我不确定这是否是正确的方法。当我查询该表时,这会导致性能损失吗?我是否必须将文本区域数据保存在另一个表中。。?或者类似的东西?

    或者我可以简单地更改 价值 列到 文本 打字没有任何问题。。?

    1 回复  |  直到 13 年前
        1
  •  2
  •   Nelson    13 年前

    VARCHAR最大长度为 255 之前 MySQL 5.0.3版本 从…起 MySQL 5.0.3版本 向前,最大长度为 65535 ,这是最大行大小,因此最大值在该行的所有字段之间共享。

    看见 dev.mysql.com/doc/refman/5.0/en/char.html