MYSQL:二进制和Blob之间的区别。

27

我试图理解MySQL的数据类型,但我不明白(VAR-)BINARY数据字段和BLOB字段之间的区别。这些类型之间有什么区别呢?

我正在尝试理解 MySQL 的数据类型,但是我不了解 (VAR-) BINARY 数据字段和 BLOB 字段之间的区别。它们之间有什么不同呢?
2个回答

19

BLOB可以很大。

此外,在线阅读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列不能有默认值。


只要大小不超过2^32B(对于LONGBLOB),就可以任意设置大小。 此外,TEXT和BLOB列不会与所有其他列一起存储,因此访问它们可能会慢一些,但好处是它们不计入64kB最大行大小的限制。 - Mchl

9

二进制和可变二进制类型是二进制字符串,其实际值存储在表中。实际值的blob(和text)类型存储在数据库其他地方,并在表中放置256字节别名来引用该槽; 因此,blob可以是“任何”大小(最大为max)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接