根据定义:
VARCHAR:长度范围为1到255个字符。除非给定了BINARY关键字,否则VARCHAR值将以不区分大小写的方式进行排序和比较。x+1字节
TINYBLOB,TINYTEXT: BLOB或TEXT列,最大长度为255 (2^8 - 1)个字符x+1字节
因此,基于此,我创建了下表:
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255),
`lastname` tinytext,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
还是创建一个varchar或tinytext和为什么更好?
它是否与以下内容相同:
VARCHAR:长度范围大于255个字符。除非给定了BINARY关键字,否则VARCHAR值将以不区分大小写的方式进行排序和比较。x+2字节
BLOB,TEXT BLOB或TEXT列,最大长度为65535 (2^16 - 1)个字符x+2字节
发布于 2011-10-13 22:28:33
在这种情况下,varchar
更好。
请注意,varchar
可以是1到65535个字符。
VARCHAR列中的
值是可变长度的字符串。在MySQL 5.0.3之前,长度可以指定为0到255之间的值;在5.0.3和更高版本中,长度可以指定为0到65,535之间的值。在MySQL 5.0.3和更高版本中,VARCHAR5.0.3和更高版本的有效最大长度取决于最大行大小(65,535字节,在所有列之间共享)和所使用的字符集。参见第E.7.4节,“表列计数和行大小限制”。
Blobs保存在文件的单独部分中。
它们需要额外的文件读取才能包含在数据中。
因此,varchar的获取速度要快得多。
如果您有一个不经常访问的大blob,那么blob更有意义。
将blob数据存储在单独的(文件的一部分)文件中,可以使核心数据文件更小,从而更快地获取数据。
https://stackoverflow.com/questions/7755629
复制相似问题