在数据库中存储非常大的文件

时间:2013-08-18 14:32:01

标签: sql database

在数据库中存储大文件(大约100 GB)是个好主意吗? 目前我们考虑使用NBT格式或使用mysql / postgresql数据库将数据保存在文件夹中。

4 个答案:

答案 0 :(得分:2)

我个人的经验是,数据库不是大型blob的好地方(除非它们支持文件系统感知存储,例如SQL Server FILESTREAM和Oracle BFILE)。

大多数云都有理由为blob提供单独的存储空间。大数据文件的生命周期与典型的日常数据不同......不同的生命周期,不同的服务内容,不同的缓存策略,不同的备份计划等等。

看看:

我会遵循他们的主导,并提出“文件系统感知”存储系统(例如,在数据库中存储文件系统路径)或使用单独的存储机制。

每次我必须处理在数据库中存储blob的应用程序(图像,pdf等)时,我花费更多时间来处理表空间,备份和性能问题,而不是设置备份/静态文件服务/缓存文件系统感知解决方案的策略。

答案 1 :(得分:1)

将大文件存储在数据库中是一个非常糟糕的主意,即使你可以

只需将文件名存储在数据库中 - 将文件保留在磁盘上。

不鼓励gbe数据库上的大文件的主要原因是数据库备份时间变得荒谬,没有什么可以获得,并且你失去了将内容存储在分布式存储上的能力。

如果您的数据库损坏并需要从备份重建,恢复时间也会变得很大。


你可以做任何事情,但这并不意味着你应该做。

答案 2 :(得分:1)

数据库旨在对大量小块数据进行排序,过滤和执行计算。如果您只想拥有一个文件系统(例如,对聚合按上传日期分组的文件总数的支持有限)只使用文件系统

答案 3 :(得分:0)

使用文件系统。

使用数据库存储文件位置和名称

您也可以(Unix基础系统)使用剪切,粘贴和连接(example)等实用程序 处理文件级别的文件。