Varchar 或 Text 数据类型,字符串长度最多为数千个字符

BBe*_*eta 4 mysql sqldatatypes

我有一个小型社交网站,包含帖子和评论。
\n我决定让用户使用他们想要的任意数量的 char\xd8\xb3 创建帖子,我认为存储此类内容的最佳数据类型是Text
\n但对于注释,大多数情况下用户只写一行或几行文字。这就是为什么我认为我必须将注释字符串长度限制为最大 3000 甚至 6000 个字符。
\n那么,我的评论应该使用什么数据类型?
\n Varchar还是文本

\n

Ric*_*mes 5

VARCHAR和之间有很多不同的地方TEXT,也有不同的地方。我说的一些话:

  • 如果最大长度超过 512 个字符,请选择TEXT
  • 切勿使用TINYTEXT- 它相对于 而言只有负面影响VARCHAR(255)
  • 不要使用VARCHAR(255);选择一个合理的最大值而不是 255。(这是与复杂查询中的临时表相关的一个小优化。)
  • 仅用于CHAR真正固定长度的东西。几乎在所有此类情况下,请添加CHARACTER SET ascii(或 latin1)。(否则它将占用比您预期更多的空间。
  • 使用CHARACTER SET ut8mb4。(例外情况正变得越来越罕见。)

(抱歉,我跑题了。回到主题......)

I 索引,InnoDB 行的布局(有 4 个不同的ROW_FORMATs)等,VARCHAR(513)本质上与TEXT.

少数论据之一VARCHAR是它将存储限制为给定的长度。但这有多重要?