varchar或文本数据类型,用于长度高达几千个字符的字符串

1bqhqjot  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(403)

我有一个小的社交网站,有帖子和评论。
我决定让用户创建任何字符数的帖子س 他们想要,我认为存储这些东西最好的数据类型是文本。
但对于评论,在大多数情况下,用户只写一行或几行文字。这就是为什么我认为我必须将注解字符串长度限制为3000个字符甚至6000个字符。
那么,我应该使用什么样的数据类型作为我的注解呢?
varchar还是text?

wyyhbhjk

wyyhbhjk1#

有很多地方 VARCHAR 以及 TEXT 做或不做区别。我说的一些话:
如果最大长度超过512个字符,请使用 TEXT .
从不使用 TINYTEXT --它只有相对于 VARCHAR(255) .
不要使用 VARCHAR(255) ; 选择一个合理的最大值,而不是255(这是一个与复杂查询中的temp表相关的小优化。)
使用 CHAR 只有真正固定长度的东西。在几乎所有这样的情况下,坚持下去 CHARACTER SET ascii (或拉丁语1)(否则它将占用比您预期更多的空间。
使用 CHARACTER SET ut8mb4 . (例外情况越来越少见。)
(对不起,我离题了。回到主题……)
i索引,在innodb行的布局中(有4个不同的 ROW_FORMATs )等等, VARCHAR(513) 基本上与 TEXT .
为数不多的关于 VARCHAR 它限制了商店的长度。但这有多重要?

gcuhipw9

gcuhipw92#

根据您的要求,使用四种可用文本类型之一[tinytext、text、mediumtext和longtext]。http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html

eh57zj3b

eh57zj3b3#

varchar列中的值是可变长度的字符串。长度可以指定为0到65535之间的值,这个值看起来足够大,可以处理用户期望的注解长度。
这四种文本类型是tinytext、text、mediumtext和longtext。每种数据类型可存储的最大数据量约为:
tinytext 256字节
文本65535字节~64kb
mediumtext 16777215字节~16mb
长文本4294967295字节~4gb
另请参见何时在mysql中使用文本而不是varchar

相关问题