文件在服务器中存储,在文件服务器或数据库中存储文件?

6 个答案:

答案 0 :(得分:3)

在数据库中,除非您不关心关于数据完整性。

如果您将文档存储在数据库之外,那么将缺少文档,并且不会在以后删除链接。您的备份/还原方案要复杂得多:您无法确保所有数据都来自同一时间点。

SQL Server 2008中的FILESTREAM现在使其高效(而其他RDBMS也具有这样的功能)

答案 1 :(得分:3)

SQL Server 2008在存储和提供大型文档方面相当不错(与早期版本不同),因此它绝对是一种选择。也就是说,从数据库中提供大量blob通常不是一个好主意。我认为你需要考虑两种方法的优缺点。一些需要考虑的一般事项:

文件的大小,以及有多少文件?扩展文件系统超过许多TB比在数据库中执行相同操作要容易得多。

您想如何管理备份?显然,使用文件系统方法,您需要单独从数据库备份文件。

我认为实现存储到数据库的解决方案可能更快,但存储到文件系统通常是更好的解决方案。但是,在后一种情况下,您将不得不担心一些问题,例如具有唯一的文件名,并且通常不希望在单个文件夹中存储太多文档(大多数解决方案在每几千个文档之后创建新文件夹)。如果文件数量不会很多,请使用更快的方法,否则需要花一些时间存储在文件系统上。

答案 2 :(得分:0)

您打算存储多少份文件?

数据库方法的主要优点是普通ACID属性 - 元数据始终与文档一致,如果使用文件系统存储文档,则不会出现这种情况。使用文件系统,您的元数据和文档可能相对容易失去同步:文件系统上没有元数据的文档,文档丢失或损坏的元数据。如果您的文档存储需要任何可靠性,那么数据库是比使用文件系统更好的方法。

答案 3 :(得分:0)

如果将这些文件存储在一个文件夹中,则在数据库中维护文件名。由于没有dir可以有2个相同扩展名的文件名。如果您希望将文件存储到DB中,则可能必须使用BLOB或字节数组来存储。

我在打开与DB的连接时看到了头脑,但我不知道数据库连接与file.Open相比有多快(甚至性能明显)。

答案 4 :(得分:0)

如果文件相对较小,我会将它们存储为数据库中的BLOB字段。这样,您可以使用标准过程进行备份/恢复以及事务处理。如果文件很大,那么将它们保存在硬盘驱动器上并将文件名存储在数据库中有一些优点,如前面所建议的那样

答案 5 :(得分:0)

如果您要仅对该文件进行操作,我会认为将DB存储为BLOB数据。如果你有文件夹上的文件和DB中只有名字,你应该关心的事实,例如:

1)有一天你可能需要重命名文件

2)改变其位置

3)更改其扩展名

或其他什么。

如果是DB,您可以将其保存在单独的表BLOB数据中,保存在其他表名称和扩展名中该文件及其BLOB表上的ID。在这种情况下,在前面讨论过的场景中,您只需要执行简单的SQL更新查询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值