【问题标题】:What is it exactly a BLOB in a DBMS contextDBMS 上下文中的 BLOB 到底是什么
【发布时间】:2011-07-21 20:03:38
【问题描述】:
  • 什么是 BLOB?
  • 如何使用它?
  • DBMS 的 BLOB 之间有什么区别。我想使用 BLOB 将数据保存到任何 DBMS 中,然后使用库读取该 BLOB。

【问题讨论】:

  • 您在第三个问题中到底在寻找什么?
  • 我正在尝试为任何 DBMS 做一些一般的库,这将包括 blobs
  • 请详细说明您的第三个问题!

标签: sql oracle blob database blobstore


【解决方案1】:

BLOB:

BLOB (Binary Large Object) 是数据库系统中的一种大对象数据类型。 BLOB 可以存储大量数据、文档类型甚至媒体文件,如音频或视频文件。 BLOB 字段仅在使用字段中的内容时才分配空间。 BLOB 以千兆字节分配空间。

BLOB 的用法:

您可以将二进制大对象 (BLOB) 作为二进制或字符数据写入数据库,具体取决于数据源中的字段类型。要将BLOB 值写入数据库,请发出适当的INSERT or UPDATE 语句并将BLOB 值作为输入参数传递。如果您的BLOB 存储为文本,例如SQL Server 文本字段,您可以将BLOB 作为字符串参数传递。如果BLOB 以二进制格式存储,例如SQL Server 图像字段,则可以将字节类型的数组作为二进制参数传递。

一个有用的链接:Storing documents as BLOB in Database - Any disadvantages ?

【讨论】:

    【解决方案2】:

    我不会再扩展首字母缩略词......但我会为另一个定义添加一些细微差别:您可以将任何数据存储在 blob 中,而不管它们可能具有的其他字节解释。文本可以存储在 blob 中,但如果您有这个选项,最好使用 CLOB。

    数据库之间的 BLOBS 应该没有区别,因为在您保存和检索数据之后,它不会改变......每个数据库如何实现这一点是一个黑盒,谢天谢地,几乎毫无例外地无关紧要。然而,与 BLOBS 交互的方式可能非常不同,因为 SQL 标准(或规范中的标准?)中没有针对它的规范。通常,您必须调用过程/函数来保存检索它们,并且如果不禁止,几乎不可能根据 BLOB 的内容限制任何查询。

    在枚举为二进制数据的其他内容中,您还可以存储文本的二进制表示 -> 具有给定编码的字符代码...而不实际知道或指定使用的编码。

    BLOBS 是存储格式的最低公分母。

    【讨论】:

      【解决方案3】:

      这似乎是一个愚蠢的问题,但您真正想使用 RDBMS 做什么?

      如果您只想存储文件,那么操作系统的文件系统通常就足够了。 RDBMS 通常用于结构化数据和(除了像 SQLite 这样的嵌入式数据)处理该数据的并发操作(锁定等)。其他有用的功能是安全性(处理对数据的访问)和备份/恢复。在后者中,与常规文件系统备份相比,主要优势在于能够通过应用某种形式的日志文件恢复到备份之间的某个时间点。

      就所涉及的数据库而言,BLOB 是非结构化和不透明的。 Oracle 确实为多媒体对象(例如图像)提供了一些特定的 ORDSYS 类型,这些对象还附加了一堆元数据,并具有相关的方法(例如,重新缩放或重新着色图像)。

      【讨论】:

        【解决方案4】:

        任何存储在数据库中的大单块数据,例如图片或声音文件,不包括记录字段,并且不能被数据库的搜索引擎直接搜索。

        【讨论】:

          【解决方案5】:

          BLOB 是二进制大对象。用于在数据库中存储大量二进制数据。

          您可以使用它来存储您想要的任何类型的二进制数据,包括图像、视频或您希望存储的任何其他类型的二进制数据。

          不同的 DBMS 以不同的方式处理 BLOB;您应该阅读您感兴趣的数据库的文档,了解它们如何(以及是否)处理 BLOB。

          【讨论】:

            【解决方案6】:

            它们是二进制大对象,您可以使用它们来存储二进制数据,例如图像或序列化对象等。

            【讨论】:

              【解决方案7】:

              我认为它是一个庞大的二进制数据数组。 BLOB 的可用性直接来自 DB 接口的有限带宽,它不是由 DB 存储机制决定的。无论您如何存储大量数据,唯一的存储和检索方式是狭窄的数据库接口。数据库是系统的瓶颈。为什么要把它用作一个文件服务器,它可以很容易地分发?通常您不想下载 BLOB。您只希望数据库存储您的 BLOB 网址。将 BLOB 存放在单独的文件服务器上。然后,您可以释放宝贵的数据库连接并为大型对象提供无限带宽。但是,这会产生一些连贯性问题。

              【讨论】:

                猜你喜欢
                • 2011-05-26
                • 2017-07-07
                • 2012-03-12
                • 2013-05-29
                • 2011-04-24
                • 2022-11-22
                • 1970-01-01
                • 2013-10-12
                相关资源
                最近更新 更多