varchar(255) 和 tinytext/tinyblob 之间的区别以及 varchar(65535) 和 blob/text 之间的区别。
varchar(255) 和 tinytext/tinyblob 之间的区别以及 varchar(65535) 和 blob/text 之间的区别。
根据定义:
VARCHAR:长度范围为1到255个字符。除非指定BINARY关键字,否则VARCHAR值以不区分大小写的方式排序和比较。x +1字节
TINYBLOB,TINYTEXT:带有最大长度为255(2 ^ 8-1)个字符的BLOB或TEXT列 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带有最大长度为65535(2 ^ 16-1)个字符的BLOB或TEXT列 x +2字节
admin 更改状态以发布 2023年5月24日
在这种情况下,varchar
更好。
请注意,varchar
的长度范围是1到65535个字符。
VARCHAR列中的值是可变长度字符串。长度可以在MySQL 5.0.3之前指定为0到255的值,在5.0.3及以后的版本中为0到65,535。在MySQL 5.0.3及以后的版本中,VARCHAR的有效最大长度取决于最大行大小(65,535字节,这是所有列共享的)和所使用的字符集。参见“表格列计数和行大小限制”(E.7.4节)。
大型二进制对象(Blobs)保存在文件的独立部分中。
将它们包含在数据中需要进行额外的文件读取。
因此,varchar的获取速度更快。
如果您访问不频繁但具有大型Blob,则Blob更有意义。
将Blob数据存储在单独的文件(部分)中可以使您的核心数据文件更小,因此可以更快地获取。