数据库中存媒体文件的字段用什么类型?一文带你了解二进制大对象BLOB

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 在大数据环境中,BLOB 很常见,并且存储在关系或非关系数据库系统中,描述的是一个二进制形式的大文件,一般可以是视频、音频或图像和图形文件。

你好,这里是网络技术联盟站。

在大数据环境中,BLOB 很常见,并且存储在关系或非关系数据库系统中,本文瑞哥带大家了解一下BLOB,让我们直接开始。

什么是BLOB?

  • 英文全称:Binary Large Object
  • 中文名称:二进制大对象

Jim Starkey是 BLOB 的发明者,它于 1970 年代首次出现,描述的是一个二进制形式的大文件,一般可以是视频、音频或图像和图形文件。BLOB可以具有数 GB 大小的数字存储单元,它被压缩成单个文件,然后存储在数据库中。由于二进制数据只能被计算机读取,并且由数字0和1组成,因此通常需要打开相关程序。

由于 BLOB 文件的原始内容在存储时通常是非结构化的,因此它需要一个数据库名称或类型来处理文件并使其可访问。

典型的 BLOB 文件和类型:

  • 视频(MP4、MOV)
  • 音频 (MP3)
  • 图像(JPG、PNG、PDF、RAW)
  • 图形 (GIF)

BLOB 的类型

共有三种不同类型的 BLOB:

块 BLOB
  • 最常见的 Blob 存储类型
  • 块的集合,每个块都可以通过块 ID 识别
  • 用于流式传输序列数据,如视频
  • 每个块最大为 4 MB
  • 最多可以创建 50000 个块
  • 最大大小 195 GB
  • 多个客户端不可以写入同一个 blob
追加 BLOB
  • 追加 Blob 与块 Blob 类似,但支持追加操作并且专为日志文件而设计
  • 针对追加操作进行了优化
  • 用于记录等活动
  • 每个块最大为 4 MB
  • 最多可以创建 50000 个块
  • 最大大小为 195 GB
  • 多个客户端可以写入同一个 blob
页面 BLOB
  • 专为频繁的读/写操作而设计
  • 为随机读写操作优化的页面集合
  • 用于非顺序读写
  • 一个页面最多可以有 512 个字节
  • 创建的页面数量没有限制
  • 最大大小 1TB
  • 多个客户端不可以写入同一个 blob

BLOB使用场景

媒体

图像、视频和音频数据占用大量空间,有时需要存储但不一定要定期访问。

日志

当软件执行时,它会不断创建一系列事件,这些事件可以记录在日志中以供以后分析,这些数据量会随着时间进行增加,Blob 存储能够以非结构化形式快速、廉价地存储这些数据。但是,对于此场景,blob 存储的成本效益较低,任何日志数据查询都会产生访问费用。

备份和灾难恢复

大多数组织需要保留完整的备份,尤其是从勒索软件攻击中恢复,由于此数据在生产中重复且很少访问,因此 Blob 存储非常适合备份大型数据集。

BLOB在数据库中的使用

二进制大对象由不同的数据库系统以不同的方式存储,数据库的结构通常不适合直接存储 BLOB。

我们来看下每个数据库系统存储大文件对象用的是什么字段:

  • MySQL:BLOB,TINYBLOB(最大 64 KB)、MEDIUMBLOB(最大 16 MB)、LONGBLOB(最大 4 GB)
  • PostgreSQL:BYTEA或通过OID
  • Oracle :BLOB
  • DB2 :BLOB
  • SQL Server:binary, varbinary, text, ntext

总结

BLOB在如今系统中经常遇到此类型,本文用精简的向大家介绍了BLOB的原理、类型和使用场景,希望本文对您有所帮助,

最后感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞👍、收藏⭐哦!有任何问题,欢迎在下方评论区与我讨论!!!

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
182 0
|
17天前
|
缓存 数据库 数据安全/隐私保护
Discuz! X 数据库字典详解:DZ各数据表作用及字段含义
我们使用DISCUZ做网站时,有时需要对数据表进行操作,在操作数据表之前,需要对数据表进行了解。下面是DISCUZ 数据库各数据表作用及字段含义详解,方便新手更好的了解DISCUZ数据库。
42 4
|
1月前
|
SQL 关系型数据库 MySQL
|
25天前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
20 2
|
1月前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
80 1
|
1月前
|
Java 关系型数据库 MySQL
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
|
29天前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
2天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
13 4
|
26天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
58 3
Mysql(4)—数据库索引
|
11天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
50 2
下一篇
无影云桌面