【问题标题】:What are the differences between the BLOB and TEXT datatypes in MySQL?MySQL 中的 BLOB 和 TEXT 数据类型有什么区别?
【发布时间】:2012-07-22 09:55:24
【问题描述】:

什么是blob,什么是text?有什么区别?

什么时候需要使用blob,什么时候需要text作为数据类型?

因为对于blobtext,有mediumblob == mediumtext, smallblob == small text。它们甚至具有相同的含义吗?

看看这个MEDIUMBLOBMEDIUMTEXT L + 3 个字节,其中L < 224

L 是什么?

【问题讨论】:

标签: mysql database text blob


【解决方案1】:

TEXT 和 CHAR 将转换为/从它们与时间关联的字符集。 BLOB 和 BINARY 只存储字节。

BLOB 用于存储二进制数据,Text 用于存储大字符串。

BLOB 值被视为二进制字符串(字节字符串)。它们没有字符集,排序和比较是基于列值中字节的数值。

TEXT 值被视为非二进制字符串(字符串)。它们有一个字符集,并根据字符集的排序规则对值进行排序和比较。

http://dev.mysql.com/doc/refman/5.0/en/blob.html

【讨论】:

  • 那么,我们使用文本来存储诸如“wordpress post”之类的长文本?而我们使用 blob 来存储一个很长的 URL 地址?那么为什么我们不使用 varchar 来存储很长的文本而不是使用 blob 或 text 呢?因为在内存计算中,varchar 非常简单,例如创建表 website( website_name varchar(30) ) 然后我们填写 website_name "stackoverflow" 所以需要的内存是 13byte
  • TEXT 将被 Varchar(MAX) 替换,但现在取决于您的 mysql 版本,将 TEXT 用于大型文本帖子,例如博客正文帖子等。BLOB 不应该用于存储非常长 URL 地址或大量文本。它通常用于存储图像或其他基于二进制的对象。就我个人而言,我从不使用 BLOB 或 TEXT 并将大量数据存储在相对于基于用户 ID 的文件夹的 xml 文件中。
  • 我不懂基于二进制的对象。你的意思是,我们可以使用 Blob 数据类型将照片存储到数据库中??就像文件夹一样?我对二进制的了解只有 1 或 0。
  • @nencor 是的,您可以将图像存储到数据库中。您还可以存储档案。但是您不能将文件夹存储到数据库中,因为文件夹实际上是文件系统的功能。 (不过,您最终可以存储一个完整的文件系统,例如作为 iso 文件存储到数据库中)
  • @martin-thoma 我们有一个应用程序,其中服务器端有一个 MongoDB 数据库。应用程序的移动组件使用 SQLLite。需要有一种方法在 MongoDB 数据库和 SQLLite 数据库之间连接数据。 MongoDB 使用 ObjectIds 来唯一标识数据。由于 SQLLite(RDBMS 世界)没有任何直接表示 MongoDB ObjectIds 的方式,我想知道是否可以将 ObjectIds 存储为 BLOB 类型。这听起来像是一个合理的解决方案吗?它会降低性能吗?还有其他缺点吗?
【解决方案2】:

Blob 数据类型存储图像等二进制对象,而文本数据类型存储网页文章等文本对象

【讨论】:

    【解决方案3】:

    TEXT 和 CHAR 或 nchar 通常会转换为纯文本,因此您只能存储字符串等文本。

    BLOB 和 BINARY 这意味着您可以存储二进制数据,例如图像只需存储字节。

    【讨论】:

    • 存储图像等二进制数据是什么意思?你是说图片网址吗?
    【解决方案4】:

    BLOB 是一个二进制字符串,用于保存可变数量的数据。大多数情况下,BLOB 用于保存实际的图像二进制文件,而不是路径和文件信息。文本用于大量字符串字符。通常一篇博客或新闻文章将构成一个 TEXT 字段

    在这种情况下,L 用于说明存储要求。 (Length|Size + 3) 只要小于224即可。

    参考:http://dev.mysql.com/doc/refman/5.0/en/blob.html

    【讨论】:

      【解决方案5】:

      根据高性能Mysql书:

      BLOBTEXT 系列之间的唯一区别是 BLOB types 存储没有排序规则或字符集的二进制数据,但 TEXT 类型具有字符集和排序规则。

      【讨论】:

        【解决方案6】:

        BLOB 存储超过 2 GB 的二进制数据。 BLOB 的最大大小为 4 GB。 二进制数据是指非结构化数据,即 图片 音频文件 视频文件 数字签名

        文本用于存储大字符串。

        【讨论】:

          猜你喜欢
          • 2011-08-15
          • 1970-01-01
          • 2011-09-01
          • 1970-01-01
          • 2011-06-12
          • 1970-01-01
          • 2011-07-07
          • 1970-01-01
          相关资源
          最近更新 更多