varchar(255)v tinyblob v tinytext
问题描述:
我的问题是tinyblob & tinytext真的有什么区别吗?varchar(255)v tinyblob v tinytext
买我真正的问题是什么原因,如果有的话,我会选择varchar(255)over tinyblob或tinytext?
答
主要storage requirements和存储器处理/速度:
在下面的表,
M
表示字符声明的列长度为非二进制串类型和字节二进制串类型。L
表示给定字符串值的实际字节长度。VARCHAR(
M
),VARBINARY(M
):L
+ 1 字节,如果列中的值需要0 - 255 个字节,如果L
+ 2个字节的值可以 需要多于255个字节TINYBLOB,TINYTEXT:
L
+ 1个字节,其中L
此外,请参阅this交:
用于在使用中的每个表中,MySQL分配 存储器4点的行。对于这些行中的每一个,使用CHAR(X)/ VARCHAR(X)列将向上提取X个字符 。
甲TEXT/BLOB另一方面是由一个8个字节的指针+一个 1-4字节长度(取决于 BLOB/TEXT类型)表示 。在使用时动态分配BLOB/TEXT 。这将使 使用较少的内存,但在某些情况下,它可能会碎片您的内存中长 运行。
编辑:顺便说一句,斑点存储二进制数据和文本存储的ASCII,多数民众赞成TINYBLOB和TINYTEXT之间的唯一区别。
答
VARCHAR(255)比tinyblob或tinytext更具有SQL标准。因此,您的脚本和应用程序可以跨数据库供应商更便携。
答
不能CHARACTER SET适用于TINYTEXT,但你可以为varchar(255)
这不是真的,你可以申请字符集都VARCHAR和TINYTEXT(在MySQL的),而不是TINYBLOB。 – 2010-02-14 07:54:56