2011-09-14 34 views
12

我想了解mysql的数据类型,但我没有得到(Var-)二进制数据字段和BLOB字段之间的区别。这些类型之间有什么区别?MYSQL:区别二进制和Blob

回答

13

BLOB's可以像你想要的那么大。

而且,阅读MySQL手册在线:

BLOB和TEXT从VARBINARY和VARCHAR的区别在于以下几个方面:

  • 没有尾随空间取消对BLOB和TEXT列当 值被存储或检索。在MySQL 5.0.3之前,这与 VARBINARY和VARCHAR不同,当存储 值时,将删除尾随空格。

  • 比较时,TEXT空间扩展为适合比较对象, 完全像CHAR和VARCHAR。

  • 对于BLOB和TEXT列上的索引,必须指定索引前缀 的长度。对于CHAR和VARCHAR,前缀长度是可选的。请参见部分 7.5.1,“列索引”。

  • BLOB和TEXT列不能有DEFAULT值。

+0

只要小于2^32B(对于LONGBLOB),'就像你想要的一样大'。 另外:* TEXT和* BLOB列不会与所有其他列一起存储,因此访问它们可能会慢一些,但从正面来看,它们不会计入最大64kB的行大小。 – Mchl

3

二进制和varbinary类型是二进制字符串,其实际值存储在表中。实际值blob(和文本)类型存储在数据库中的其他位置,该表中放置该槽的256字节别名;因此blob可以是“任何”大小(最大)。

相关问题