【问题标题】:MYSQL: Difference between Binary and BlobMYSQL:二进制和 Blob 之间的区别
【发布时间】:2014-03-25 20:38:12
【问题描述】:

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

【问题讨论】:

    标签: mysql


    【解决方案1】:

    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 列不能有 DEFAULT 值。

    【讨论】:

    • '随心所欲',只要小于 2^32B(对于 LONGBLOB)。另外:*TEXT 和 *BLOB 列不会与所有其他列一起存储,因此访问它们可能会慢一些,但从好的方面来说,它们不计入 64kB 最大行大小。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-05
      • 2011-05-29
      • 2014-03-01
      • 2017-01-27
      • 1970-01-01
      • 2019-10-11
      相关资源
      最近更新 更多