我有一个小的社交网站,有帖子和评论。我决定让用户创建任何字符数的帖子س 他们想要,我认为存储这些东西最好的数据类型是文本。但对于评论,在大多数情况下,用户只写一行或几行文字。这就是为什么我认为我必须将注解字符串长度限制为3000个字符甚至6000个字符。那么,我应该使用什么样的数据类型作为我的注解呢?varchar还是text?
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 它限制了商店的长度。但这有多重要?
VARCHAR
TEXT
TINYTEXT
VARCHAR(255)
CHAR
CHARACTER SET ascii
CHARACTER SET ut8mb4
ROW_FORMATs
VARCHAR(513)
gcuhipw92#
根据您的要求,使用四种可用文本类型之一[tinytext、text、mediumtext和longtext]。http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
eh57zj3b3#
varchar列中的值是可变长度的字符串。长度可以指定为0到65535之间的值,这个值看起来足够大,可以处理用户期望的注解长度。这四种文本类型是tinytext、text、mediumtext和longtext。每种数据类型可存储的最大数据量约为:tinytext 256字节文本65535字节~64kbmediumtext 16777215字节~16mb长文本4294967295字节~4gb另请参见何时在mysql中使用文本而不是varchar
3条答案
按热度按时间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
它限制了商店的长度。但这有多重要?gcuhipw92#
根据您的要求,使用四种可用文本类型之一[tinytext、text、mediumtext和longtext]。http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
eh57zj3b3#
varchar列中的值是可变长度的字符串。长度可以指定为0到65535之间的值,这个值看起来足够大,可以处理用户期望的注解长度。
这四种文本类型是tinytext、text、mediumtext和longtext。每种数据类型可存储的最大数据量约为:
tinytext 256字节
文本65535字节~64kb
mediumtext 16777215字节~16mb
长文本4294967295字节~4gb
另请参见何时在mysql中使用文本而不是varchar